etldir = $(includedir)/ETL
-etl_HEADERS= value _value.h rect _rect.h misc _misc.h ref_count _ref_count.h angle fastangle handle ipc thread fixed random clock hermite calculus stringf trivial spline _stringf.h _bspline.h _calculus.h _mutex_null.h _hermite.h _curve_func.h _clock_base.h _clock_system.h _clock_gettimeofday.h _random.h _angle.h _fastangle.h _curve.h _handle.h _thread.h _mutex_pthreads.h _mutex_win32.h _condition.h _rwlock.h smach _smach.h _trivial.h _fixed.h etl_config.h $(top_builddir)/ETL/etl_profile.h _fastangle_tables.h bezier _bezier.h _bezier_angle.h _status.h status pen _pen.h boxblur _boxblur.h gaussian _gaussian.h surface _surface.h smart_ptr _smart_ptr.h _clock_win32hpcount.h mutex _mutex_simple.h
+etl_HEADERS= value _value.h rect _rect.h misc _misc.h ref_count _ref_count.h angle fastangle handle ipc thread fixed random clock hermite calculus stringf trivial spline _stringf.h _bspline.h _calculus.h _mutex_null.h _hermite.h _curve_func.h _clock_base.h _clock_system.h _clock_gettimeofday.h _random.h _angle.h _fastangle.h _curve.h _handle.h _thread.h _mutex_pthreads.h _mutex_win32.h _condition.h _rwlock.h smach _smach.h _trivial.h _fixed.h etl_config.h $(top_builddir)/ETL/etl_profile.h _fastangle_tables.h bezier _bezier.h _bezier_angle.h _status.h status pen _pen.h boxblur _boxblur.h gaussian _gaussian.h surface _surface.h smart_ptr _smart_ptr.h _clock_win32hpcount.h mutex _mutex_pthreads_simple.h
$(top_builddir)/ETL/etl_profile.h:$(top_builddir)/ETL/etl_profile_.h
sed "s/PACKAGE/ETL/g;" < $(top_builddir)/ETL/etl_profile_.h > $(top_builddir)/ETL/etl_profile.h
**
** \legal
** Copyright (c) 2002 Robert B. Quattlebaum Jr.
-** Copyright (c) 2007 Chris Moore
+** Copyright (c) 2007, 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
/* === H E A D E R S ======================================================= */
-// include the next line in an attempt to increase stability
-#define ETL_LOCK_REFCOUNTS
-
#include <cassert>
-#ifdef ETL_LOCK_REFCOUNTS
-# include "_mutex_simple.h"
-#endif
-
/* === M A C R O S ========================================================= */
/* === T Y P E D E F S ===================================================== */
--- /dev/null
+/*! ========================================================================
+** Extended Template and Library
+** Mutex Abstraction Class Implementation
+** $Id$
+**
+** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2008 Chris Moore
+**
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
+**
+** This package is distributed in the hope that it will be useful,
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+** General Public License for more details.
+**
+** === N O T E S ===========================================================
+**
+** This is an internal header file, included by other ETL headers.
+** You should not attempt to use it directly.
+**
+** ========================================================================= */
+
+/* === S T A R T =========================================================== */
+
+#ifndef __ETL__MUTEX_PTHREADS_SIMPLE_H_
+#define __ETL__MUTEX_PTHREADS_SIMPLE_H_
+
+/* === H E A D E R S ======================================================= */
+
+#include <pthread.h>
+
+/* === M A C R O S ========================================================= */
+
+/* === C L A S S E S & S T R U C T S ======================================= */
+
+_ETL_BEGIN_NAMESPACE
+
+class mutex
+{
+ pthread_mutex_t mtx;
+public:
+ mutex() { pthread_mutex_init(&mtx,NULL); }
+ ~mutex() { pthread_mutex_destroy(&mtx); }
+ void lock_mutex() { pthread_mutex_lock(&mtx); }
+ void unlock_mutex() { pthread_mutex_unlock(&mtx); }
+
+ //! Exception-safe mutex lock class
+ class lock
+ {
+ mutex *_mtx;
+ public:
+ lock(mutex &x):_mtx(&x) { _mtx->lock_mutex(); }
+ ~lock() { _mtx->unlock_mutex(); }
+ };
+};
+
+_ETL_END_NAMESPACE
+
+/* === E N D =============================================================== */
+
+#endif
+++ /dev/null
-/*! ========================================================================
-** Extended Template and Library
-** Mutex Abstraction Class Implementation
-** $Id$
-**
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
-** Copyright (c) 2008 Chris Moore
-**
-** This package is free software; you can redistribute it and/or
-** modify it under the terms of the GNU General Public License as
-** published by the Free Software Foundation; either version 2 of
-** the License, or (at your option) any later version.
-**
-** This package is distributed in the hope that it will be useful,
-** but WITHOUT ANY WARRANTY; without even the implied warranty of
-** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-** General Public License for more details.
-**
-** === N O T E S ===========================================================
-**
-** This is an internal header file, included by other ETL headers.
-** You should not attempt to use it directly.
-**
-** ========================================================================= */
-
-/* === S T A R T =========================================================== */
-
-#ifndef __ETL__MUTEX_SIMPLE_H_
-#define __ETL__MUTEX_SIMPLE_H_
-
-/* === H E A D E R S ======================================================= */
-
-#include <pthread.h>
-
-/* === M A C R O S ========================================================= */
-
-/* === C L A S S E S & S T R U C T S ======================================= */
-
-_ETL_BEGIN_NAMESPACE
-
-class mutex
-{
- pthread_mutex_t mtx;
-public:
- mutex() { pthread_mutex_init(&mtx,NULL); }
- ~mutex() { pthread_mutex_destroy(&mtx); }
- void lock_mutex() { pthread_mutex_lock(&mtx); }
- void unlock_mutex() { pthread_mutex_unlock(&mtx); }
-
- //! Exception-safe mutex lock class
- class lock
- {
- mutex *_mtx;
- public:
- lock(mutex &x):_mtx(&x) { _mtx->lock_mutex(); }
- ~lock() { _mtx->unlock_mutex(); }
- };
-};
-
-_ETL_END_NAMESPACE
-
-/* === E N D =============================================================== */
-
-#endif
**
** \legal
** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
#include "etl_config.h"
+// include the next line in an attempt to increase stability
+#define ETL_LOCK_REFCOUNTS
+
+#ifdef ETL_LOCK_REFCOUNTS
+# include "mutex"
+#endif
+
#include "_handle.h"
/* === E N D =============================================================== */
#include "etl_config.h"
-#include "_mutex_simple.h"
+#ifdef HAVE_LIBPTHREAD
+# include "_mutex_pthreads_simple.h"
+#else
+#ifdef _WIN32
+# include "_mutex_win32.h"
+#endif
+#endif
/* === E N D =============================================================== */