Revision: 2377 http://synfig.svn.sourceforge.net/synfig/?rev=2377&view=rev Author: pabs3 Date: 2009-06-07 10:41:14 +0000 (Sun, 07 Jun 2009)
Log Message: ----------- Add some changes to make ETL more suitable for Fedora: Generate etl_profile.h in a less hacky way. Move the tests needed for generating etl_profile.h into the main configuration file. Move the etl_profile.h header to an arch-specific dir to prepare for multi-arch. Use less generic defines in the etl_profile.h header and prefix private defines with a double underscore. Modified Paths: -------------- ETL/trunk/ETL/Makefile.am ETL/trunk/ETL/_mutex_pthreads.h ETL/trunk/ETL/_stringf.h ETL/trunk/ETL/_thread.h ETL/trunk/ETL/clock ETL/trunk/ETL/handle ETL/trunk/ETL/mutex ETL/trunk/ETL.pbproj/etl_profile.h ETL/trunk/ETL.pc.in ETL/trunk/Makefile.am ETL/trunk/configure.ac ETL/trunk/m4/ETL.m4 Added Paths: ----------- ETL/trunk/ETL/etl_profile.h.in Modified: ETL/trunk/ETL/Makefile.am =================================================================== --- ETL/trunk/ETL/Makefile.am 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/Makefile.am 2009-06-07 10:41:14 UTC (rev 2377) @@ -3,10 +3,11 @@ MAINTAINERCLEANFILES = \ Makefile.in -CLEANFILES = \ - $(top_builddir)/ETL/etl_profile.h +etlconfigdir = $(libdir)/ETL/include +etlconfig_DATA = $(builddir)/etl_profile.h + etldir = $(includedir)/ETL etl_HEADERS = \ @@ -55,7 +56,6 @@ _trivial.h \ _fixed.h \ etl_config.h \ - $(top_builddir)/ETL/etl_profile.h \ _fastangle_tables.h \ bezier \ _bezier.h \ @@ -77,10 +77,6 @@ _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 - - # FIXME: figure out why this is in SVN, but isn't installed EXTRA_DIST = \ _bit_rotate.h Modified: ETL/trunk/ETL/_mutex_pthreads.h =================================================================== --- ETL/trunk/ETL/_mutex_pthreads.h 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/_mutex_pthreads.h 2009-06-07 10:41:14 UTC (rev 2377) @@ -33,7 +33,7 @@ #include <pthread.h> -#ifdef HAVE_SCHED_H +#ifdef __ETL_HAS_SCHED_H # include <sched.h> #endif Modified: ETL/trunk/ETL/_stringf.h =================================================================== --- ETL/trunk/ETL/_stringf.h 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/_stringf.h 2009-06-07 10:41:14 UTC (rev 2377) @@ -53,6 +53,13 @@ #define POPEN_BINARY_WRITE_TYPE "w" #endif +#ifdef __ETL_HAS__VSNPRINTF +#ifndef __ETL_HAS_VSNPRINTF +#define vnsprintf _vnsprintf +#define __ETL_HAS_VSNPRINTF +#endif +#endif + /* === T Y P E D E F S ===================================================== */ _ETL_BEGIN_CDECLS @@ -66,13 +73,13 @@ // Prefer prototypes from glibc headers, since defining them ourselves // works around glibc security mechanisms -#ifdef HAVE_VASPRINTF // This is the preferred method +#ifdef __ETL_HAS_VASPRINTF // This is the preferred method #ifndef __GLIBC__ extern int vasprintf(char **,const char *,va_list)ETL_NO_THROW; #endif #else -# ifdef HAVE_VSNPRINTF // This is the secondary method +# ifdef __ETL_HAS_VSNPRINTF // This is the secondary method #ifndef __GLIBC__ extern int vsnprintf(char *,size_t,const char*,va_list)ETL_NO_THROW; #endif @@ -80,13 +87,13 @@ #endif -#ifdef HAVE_VSSCANF +#ifdef __ETL_HAS_VSSCANF #ifndef __GLIBC__ extern int vsscanf(const char *,const char *,va_list)ETL_NO_THROW; #endif #else #define ETL_NO_VSTRSCANF -#ifdef HAVE_SSCANF +#ifdef __ETL_HAS_SSCANF #ifndef __GLIBC__ extern int sscanf(const char *buf, const char *format, ...)ETL_NO_THROW; #endif @@ -104,7 +111,7 @@ inline std::string vstrprintf(const char *format, va_list args) { -#ifdef HAVE_VASPRINTF // This is the preferred method (and safest) +#ifdef __ETL_HAS_VASPRINTF // This is the preferred method (and safest) char *buffer; std::string ret; int i=vasprintf(&buffer,format,args); @@ -115,7 +122,7 @@ } return ret; #else -#ifdef HAVE_VSNPRINTF // This is the secondary method (Safe, but bulky) +#ifdef __ETL_HAS_VSNPRINTF // This is the secondary method (Safe, but bulky) #warning etl::vstrprintf() has a maximum size of ETL_STRPRINTF_MAX_LENGTH in this configuration. #ifdef ETL_THREAD_SAFE char buffer[ETL_STRPRINTF_MAX_LENGTH]; @@ -164,7 +171,7 @@ } #else -#if defined (HAVE_SSCANF) && defined (__GNUC__) +#if defined (__ETL_HAS_SSCANF) && defined (__GNUC__) #define strscanf(data,format,...) sscanf(data.c_str(),format,__VA_ARGS__) #endif #endif Modified: ETL/trunk/ETL/_thread.h =================================================================== --- ETL/trunk/ETL/_thread.h 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/_thread.h 2009-06-07 10:41:14 UTC (rev 2377) @@ -31,21 +31,21 @@ #define __USE_GNU -#ifdef HAVE_PTHREAD_H +#ifdef __ETL_HAS_PTHREAD_H # include <pthread.h> #endif -#ifdef HAVE_SCHED_H +#ifdef __ETL_HAS_SCHED_H # include <sched.h> #endif -#ifdef HAVE_CREATETHREAD +#ifdef __ETL_HAS_CREATETHREAD # include <windows.h> #endif /* === M A C R O S ========================================================= */ -#if ( defined (HAVE_PTHREAD_CREATE) || defined (HAVE_CLONE) || defined (HAVE_CREATETHREAD) ) && !defined (NO_THREADS) +#if ( defined (__ETL_HAS_PTHREAD_CREATE) || defined (__ETL_HAS_CLONE) || defined (__ETL_HAS_CREATETHREAD) ) && !defined (NO_THREADS) # define CALLISTO_THREADS #endif @@ -53,7 +53,7 @@ /* === C L A S S E S & S T R U C T S ======================================= */ -#if defined(CALLISTO_THREADS) && defined(HAVE_PTHREAD_CREATE) +#if defined(CALLISTO_THREADS) && defined(__ETL_HAS_PTHREAD_CREATE) static inline void Yield(void) { sched_yield(); @@ -68,7 +68,7 @@ #ifdef CALLISTO_THREADS -#ifdef HAVE_PTHREAD_CREATE +#ifdef __ETL_HAS_PTHREAD_CREATE class Thread { @@ -207,7 +207,7 @@ } }; -#ifdef HAVE_PTHREAD_RW_LOCK_INIT +#ifdef __ETL_HAS_PTHREAD_RW_LOCK_INIT class ReadWriteLock { pthread_rwlock_t rwlock; @@ -290,8 +290,8 @@ }; */ -#else // if defined HAVE_PTHREAD -#ifdef HAVE_CREATETHREAD +#else // if defined __ETL_HAS_PTHREAD_CREATE +#ifdef __ETL_HAS_CREATETHREAD #ifdef THREAD_ENTRYPOINT @@ -448,8 +448,8 @@ }; -#endif // if defined HAVE_CREATETHREAD -#endif // if defined HAVE_PTHREAD_CREATE +#endif // if defined __ETL_HAS_CREATETHREAD +#endif // if defined __ETL_HAS_PTHREAD_CREATE #endif // if defined CALLISTO_THREADS Modified: ETL/trunk/ETL/clock =================================================================== --- ETL/trunk/ETL/clock 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/clock 2009-06-07 10:41:14 UTC (rev 2377) @@ -29,7 +29,7 @@ #include "etl_config.h" -#ifdef HAVE_GETTIMEOFDAY +#ifdef __ETL_HAS_GETTIMEOFDAY #include "_clock_gettimeofday.h" #ifndef ETL_CLOCK_DEFAULT_DESC_CLASS #define ETL_CLOCK_DEFAULT_DESC_CLASS _ETL::clock_desc_gettimeofday Added: ETL/trunk/ETL/etl_profile.h.in =================================================================== --- ETL/trunk/ETL/etl_profile.h.in (rev 0) +++ ETL/trunk/ETL/etl_profile.h.in 2009-06-07 10:41:14 UTC (rev 2377) @@ -0,0 +1,42 @@ +/* + * + * ETL platform-specific configuration header + * + * Built platform: @build@ + * Host platform: @host@ + * + */ + +#ifndef __ETL_PROFILE_H__ +#define __ETL_PROFILE_H__ + +// Public ETL definitions + +#define ETL_NAME "@PACKAGE_NAME@" +#define ETL_TARNAME "@PACKAGE_TARNAME@" +#define ETL_VERSION "@PACKAGE_VERSION@" + +// Private ETL definitions + +// Libraries +...@d_libpthread@ __ETL_HAS_LIBPTHREAD + +// Headers +...@d_pthread_h@ __ETL_HAS_PTHREAD_H +...@d_sched_h@ __ETL_HAS_SCHED_H + +// Functions +...@d_pthread_create@ __ETL_HAS_PTHREAD_CREATE +...@d_pthread_rwlock_init@ __ETL_HAS_PTHREAD_RWLOCK_INIT +...@d_sched_yield@ __ETL_HAS_SCHED_YIELD +...@d_createthread@ __ETL_HAS_CREATETHREAD +...@d_queryperformancecounter@ __ETL_HAS_QUERYPERFORMANCECOUNTER +...@d_gettimeofday@ __ETL_HAS_GETTIMEOFDAY +...@d_sscanf@ __ETL_HAS_SSCANF +...@d_vsscanf@ __ETL_HAS_VSSCANF +...@d_vsprintf@ __ETL_HAS_VSPRINTF +...@d_vasprintf@ __ETL_HAS_VASPRINTF +...@d_vsnprintf@ __ETL_HAS_VSNPRINTF +...@d__vsnprintf@ __ETL_HAS__VSNPRINTF + +#endif // __ETL_PROFILE_H__ Modified: ETL/trunk/ETL/handle =================================================================== --- ETL/trunk/ETL/handle 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/handle 2009-06-07 10:41:14 UTC (rev 2377) @@ -33,12 +33,12 @@ // include the next line in an attempt to increase stability // it seems to make things much *less* stable on MS Windows #ifndef _WIN32 -#ifdef HAVE_LIBPTHREAD -#define ETL_LOCK_REFCOUNTS +#ifdef __ETL_HAS_LIBPTHREAD +#define __ETL_LOCK_REFCOUNTS #endif #endif -#ifdef ETL_LOCK_REFCOUNTS +#ifdef __ETL_LOCK_REFCOUNTS # include "mutex" #endif Modified: ETL/trunk/ETL/mutex =================================================================== --- ETL/trunk/ETL/mutex 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL/mutex 2009-06-07 10:41:14 UTC (rev 2377) @@ -29,7 +29,7 @@ #include "etl_config.h" -#ifdef HAVE_LIBPTHREAD +#ifdef __ETL_HAS_LIBPTHREAD # include "_mutex_pthreads_simple.h" #else #ifdef _WIN32 Modified: ETL/trunk/ETL.pbproj/etl_profile.h =================================================================== --- ETL/trunk/ETL.pbproj/etl_profile.h 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL.pbproj/etl_profile.h 2009-06-07 10:41:14 UTC (rev 2377) @@ -8,32 +8,32 @@ /* define if target is big endian */ #define WORDS_BIGENDIAN -#ifndef HAVE_GETTIMEOFDAY -#define HAVE_GETTIMEOFDAY +#ifndef __ETL_HAS_GETTIMEOFDAY +#define __ETL_HAS_GETTIMEOFDAY #endif -#ifndef HAVE_PTHREAD_H -#define HAVE_PTHREAD_H +#ifndef __ETL_HAS_PTHREAD_H +#define __ETL_HAS_PTHREAD_H #endif -#ifndef HAVE_SCHED_H -#define HAVE_SCHED_H +#ifndef __ETL_HAS_SCHED_H +#define __ETL_HAS_SCHED_H #endif -#ifndef HAVE_PTHREAD_CREATE -#define HAVE_PTHREAD_CREATE +#ifndef __ETL_HAS_PTHREAD_CREATE +#define __ETL_HAS_PTHREAD_CREATE #endif -#ifndef HAVE_VASPRINTF -#define HAVE_VASPRINTF +#ifndef __ETL_HAS_VASPRINTF +#define __ETL_HAS_VASPRINTF #endif -#ifndef HAVE_VSNPRINTF -#define HAVE_VSNPRINTF +#ifndef __ETL_HAS_VSNPRINTF +#define __ETL_HAS_VSNPRINTF #endif -#ifndef HAVE_VSPRINTF -#define HAVE_VSPRINTF +#ifndef __ETL_HAS_VSPRINTF +#define __ETL_HAS_VSPRINTF #endif #endif // __VETL_CONFIG_H Modified: ETL/trunk/ETL.pc.in =================================================================== --- ETL/trunk/ETL.pc.in 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/ETL.pc.in 2009-06-07 10:41:14 UTC (rev 2377) @@ -8,4 +8,4 @@ Requires: Version: @VERSION@ Libs: @LIBS@ -Cflags: -I${includedir} +Cflags: -I${includedir} -I${libdir}/ETL/include Modified: ETL/trunk/Makefile.am =================================================================== --- ETL/trunk/Makefile.am 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/Makefile.am 2009-06-07 10:41:14 UTC (rev 2377) @@ -21,7 +21,6 @@ config.status \ .doc_stamp \ .DS_Store \ - include/etl_profile.h.in \ doxygen.cfg @@ -46,7 +45,6 @@ config/depcomp \ m4/cxx_macros.m4 \ ETL.pbproj/project.pbxproj \ - ETL.pbproj/etl_profile.h \ ETL.pbproj/frameworkfix.cpp \ ETL-config.in \ m4/ETL.m4 \ Modified: ETL/trunk/configure.ac =================================================================== --- ETL/trunk/configure.ac 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/configure.ac 2009-06-07 10:41:14 UTC (rev 2377) @@ -6,7 +6,7 @@ AC_REVISION AC_CONFIG_AUX_DIR(config) -AC_CONFIG_HEADERS([ETL/etl_profile_.h]) +AC_CONFIG_HEADERS([config.h]) AC_CANONICAL_HOST AC_CANONICAL_TARGET @@ -41,27 +41,41 @@ # -- L I B R A R I E S ---------------------------------------- -# -- H E A D E R S -------------------------------------------- +AC_CHECK_LIB([user32], [main]) +AC_CHECK_LIB([kernel32], [CreateMutex]) +AC_CHECK_LIB([pthread], [pthread_mutex_init], , [HAVE_LIBPTHREAD=no]) -AH_TOP([ -// We want to be autoconf/autoheader friendly, so -// if the developer has already included an -// autoheader-generated configuration script, -// we can assume that the user knew what they -// were doing and let them use their own config.h. -//#ifndef PACKAGE_TARNAME -]) +if test x$HAVE_LIBPTHREAD = xno ; then + D_LIBPTHREAD="#undef" +else + D_LIBPTHREAD="#define" +fi -AH_BOTTOM([ -//#endif // ifndef PACKAGE_TARNAME -]) +# -- H E A D E R S -------------------------------------------- +AC_HEADER_STDC +AC_CHECK_HEADERS([pthread.h], [D_PTHREAD_H="#define"], [D_PTHREAD_H="#undef"]) +AC_CHECK_HEADERS([sched.h], [D_SCHED_H="#define"], [D_SCHED_H="#undef"]) +AC_CHECK_HEADERS([sys/time.h]) +AC_CHECK_HEADERS([unistd.h]) +AC_CHECK_HEADERS([windows.h]) # -- T Y P E S & S T R U C T S -------------------------------- # -- F U N C T I O N S ---------------------------------------- -ETL_DEPS +AC_CHECK_FUNCS([pthread_create], [D_PTHREAD_CREATE="#define"], [D_PTHREAD_CREATE="#undef"]) +AC_CHECK_FUNCS([pthread_rwlock_init], [D_PTHREAD_RWLOCK_INIT="#define"], [D_PTHREAD_RWLOCK_INIT="#undef"]) +AC_CHECK_FUNCS([sched_yield], [D_SCHED_YIELD="#define"], [D_SCHED_YIELD="#undef"]) +AC_CHECK_FUNCS([CreateThread], [D_CREATETHREAD="#define"], [D_CREATETHREAD="#undef"]) +AC_CHECK_FUNCS([QueryPerformanceCounter], [D_QUERYPERFORMANCECOUNTER="#define"], [D_QUERYPERFORMANCECOUNTER="#undef"]) +AC_CHECK_FUNCS([gettimeofday], [D_GETTIMEOFDAY="#define"], [D_GETTIMEOFDAY="#undef"]) +AC_CHECK_FUNCS([sscanf], [D_SSCANF="#define"], [D_SSCANF="#undef"]) +AC_CHECK_FUNCS([vsscanf], [D_VSSCANF="#define"], [D_VSSCANF="#undef"]) +AC_CHECK_FUNCS([vsprintf], [D_VSPRINTF="#define"], [D_VSPRINTF="#undef"]) +AC_CHECK_FUNCS([vasprintf], [D_VASPRINTF="#define"], [D_VASPRINTF="#undef"]) +AC_CHECK_FUNCS([vsnprintf], [D_VSNPRINTF="#define"], [D_VSNPRINTF="#undef"]) +AC_CHECK_FUNCS([_vsnprintf], [D__VSNPRINTF="#define"], [D__VSNPRINTF="#undef"]) # -- O U T P U T ---------------------------------------------- @@ -69,7 +83,29 @@ AC_SUBST(CPPFLAGS) AC_SUBST(LDFLAGS) +# Libraries +AC_SUBST(D_LIBPTHREAD) + +# Headers +AC_SUBST(D_PTHREAD_H) +AC_SUBST(D_SCHED_H) + +# Functions +AC_SUBST(D_PTHREAD_CREATE) +AC_SUBST(D_PTHREAD_RWLOCK_INIT) +AC_SUBST(D_SCHED_YIELD) +AC_SUBST(D_CREATETHREAD) +AC_SUBST(D_QUERYPERFORMANCECOUNTER) +AC_SUBST(D_GETTIMEOFDAY) +AC_SUBST(D_SSCANF) +AC_SUBST(D_VSSCANF) +AC_SUBST(D_VSPRINTF) +AC_SUBST(D_VASPRINTF) +AC_SUBST(D_VSNPRINTF) +AC_SUBST(D__VSNPRINTF) + AC_CONFIG_FILES([ETL-config +ETL/etl_profile.h Makefile ETL/Makefile test/Makefile Modified: ETL/trunk/m4/ETL.m4 =================================================================== --- ETL/trunk/m4/ETL.m4 2009-05-11 16:31:34 UTC (rev 2376) +++ ETL/trunk/m4/ETL.m4 2009-06-07 10:41:14 UTC (rev 2377) @@ -5,38 +5,6 @@ # By Robert B. Quattlebaum Jr. <da...@users.sf.net> # -AC_DEFUN([ETL_DEPS], -[ - AC_CHECK_LIB(user32, main) - AC_CHECK_LIB([kernel32], [CreateMutex]) - AC_CHECK_LIB([pthread], [pthread_mutex_init]) - - AC_HEADER_STDC - - AC_CHECK_HEADERS(pthread.h) - AC_CHECK_HEADERS(sched.h) - AC_CHECK_HEADERS(sys/time.h) - AC_CHECK_HEADERS(unistd.h) - AC_CHECK_HEADERS(windows.h) - AC_CHECK_FUNCS([pthread_create]) - AC_CHECK_FUNCS([pthread_rwlock_init]) - AC_CHECK_FUNCS([sched_yield]) - AC_CHECK_FUNCS([CreateThread]) - AC_CHECK_FUNCS([QueryPerformanceCounter]) - - AC_CHECK_FUNCS([gettimeofday]) - AC_CHECK_FUNCS([sscanf]) - AC_CHECK_FUNCS([vsscanf]) - AC_CHECK_FUNCS([vsprintf]) - AC_CHECK_FUNCS([vasprintf]) - AC_CHECK_FUNCS([vsnprintf],[],[ - AC_CHECK_FUNC([_vsnprintf],[ - AC_DEFINE(vsnprintf,_vsnprintf,[define if the vsnprintf function is mangled]) - AC_DEFINE(HAVE_VSNPRINTF,1) - ]) - ]) -]) - AC_DEFUN([USING_ETL], [ AC_ARG_WITH(ETL-includes, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ OpenSolaris 2009.06 is a cutting edge operating system for enterprises looking to deploy the next generation of Solaris that includes the latest innovations from Sun and the OpenSource community. Download a copy and enjoy capabilities such as Networking, Storage and Virtualization. Go to: http://p.sf.net/sfu/opensolaris-get _______________________________________________ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl