Просмотр исходного кода

Updated to latest pandora build. Reworkd ld version script.

Monty Taylor 15 лет назад
Родитель
Сommit
faa46bf6fe

+ 0 - 6
config/autorun.sh

@@ -68,12 +68,6 @@ then
   . config/pre_hook.sh
   . config/pre_hook.sh
 fi
 fi
 
 
-# We need to some file here for the m4_sinclude, even if it's just empty
-if test ! -f config/plugin.ac
-then
-  touch config/plugin.ac
-fi
-
 # Try to detect the supported binaries if the user didn't
 # Try to detect the supported binaries if the user didn't
 # override that by pushing the environment variable
 # override that by pushing the environment variable
 if test x$LIBTOOLIZE = x; then
 if test x$LIBTOOLIZE = x; then

+ 2 - 51
configure.ac

@@ -43,60 +43,11 @@ GEARMAN_SERVER_LIBRARY_VERSION=0:1:0
 #                          or changed
 #                          or changed
 AC_SUBST(GEARMAN_SERVER_LIBRARY_VERSION)
 AC_SUBST(GEARMAN_SERVER_LIBRARY_VERSION)
 
 
-# lib versioning when linked with GNU ld.
-AS_IF([test "$lt_cv_prog_gnu_ld" = "yes"],[
-    LD_VERSION_SCRIPT="-Wl,--version-script=\$(top_srcdir)/libgearman/libgearman.ver"
-    LD_VERSION_SCRIPT_SERVER="-Wl,--version-script=\$(top_srcdir)/libgearman-server/libgearman-server.ver"
-])
-AC_SUBST(LD_VERSION_SCRIPT)
-AC_SUBST(LD_VERSION_SCRIPT_SERVER)
 
 
 PANDORA_REQUIRE_PTHREAD
 PANDORA_REQUIRE_PTHREAD
+PANDORA_REQUIRE_LIBEVENT
+PANDORA_REQUIRE_LIBUUID
 
 
-#--------------------------------------------------------------------
-# Check for libevent
-#--------------------------------------------------------------------
-
-AC_LIB_HAVE_LINKFLAGS(event,,
-[
-#include <sys/types.h>
-#include <sys/time.h>
-#include <stdlib.h>
-#include <event.h>
-],[
-  struct bufferevent bev;
-  bufferevent_settimeout(&bev, 1, 1);
-  event_init();
-  event_loop(EVLOOP_ONCE);
-])
-AS_IF([test x$ac_cv_libevent = xno],
-      AC_MSG_ERROR([A recent version of libevent is required to build gearmand. On Debian this can be found in libevent-dev. On RedHat its in libevent-devel. You can also install the latest from source at http://www.monkey.org/~provos/libevent.]))
-
-
-save_LIBS="${LIBS}"
-LIBS="${LIBS} ${LTLIBEVENT}"
-AC_CHECK_FUNCS(event_base_new)
-AC_CHECK_FUNCS(event_base_free)
-AC_CHECK_FUNCS(event_base_get_method)
-LIBS="$save_LIBS"
-
-#--------------------------------------------------------------------
-# Check for libuuid
-#--------------------------------------------------------------------
-
-AC_CHECK_HEADERS(uuid/uuid.h)
-if test "x$ac_cv_header_uuid_uuid_h" = "xno"
-then
-  AC_MSG_ERROR([Couldn't find uuid/uuid.h. On Debian this can be found in uuid-dev. On Redhat this can be found in e2fsprogs-devel.])
-fi
-AC_LIB_HAVE_LINKFLAGS(uuid,,
-[
-#include <uuid/uuid.h>
-],
-[
-  uuid_t uout;
-  uuid_generate(uout);
-])
 
 
 PANDORA_HAVE_BETTER_MALLOC
 PANDORA_HAVE_BETTER_MALLOC
 PANDORA_HAVE_LIBSQLITE3
 PANDORA_HAVE_LIBSQLITE3

+ 1 - 2
libgearman-server/Makefile.am

@@ -80,8 +80,7 @@ libgearman_server_la_CFLAGS= \
 
 
 libgearman_server_la_LDFLAGS= \
 libgearman_server_la_LDFLAGS= \
 	-version-info \
 	-version-info \
-	$(GEARMAN_SERVER_LIBRARY_VERSION) \
-	$(LD_VERSION_SCRIPT_SERVER)
+	$(GEARMAN_SERVER_LIBRARY_VERSION)
 
 
 libgearman_server_la_LIBADD= \
 libgearman_server_la_LIBADD= \
 	$(top_builddir)/libgearman/libgearman.la \
 	$(top_builddir)/libgearman/libgearman.la \

+ 0 - 1
libgearman-server/libgearman-server.ver

@@ -1 +0,0 @@
-libgearman_server_0 { global: *; };

+ 1 - 2
libgearman/Makefile.am

@@ -40,8 +40,7 @@ libgearman_la_CFLAGS= \
 
 
 libgearman_la_LDFLAGS= \
 libgearman_la_LDFLAGS= \
 	-version-info \
 	-version-info \
-	$(GEARMAN_LIBRARY_VERSION) \
-	$(LD_VERSION_SCRIPT)
+	$(GEARMAN_LIBRARY_VERSION)
 
 
 libgearman_la_LIBADD= \
 libgearman_la_LIBADD= \
 	$(LTLIBUUID)
 	$(LTLIBUUID)

+ 0 - 1
libgearman/libgearman.ver

@@ -1 +0,0 @@
-libgearman_3 { global: *; };

+ 82 - 9
m4/pandora_canonical.m4

@@ -4,7 +4,7 @@ dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl with or without modifications, as long as this notice is preserved.
 
 
 dnl Which version of the canonical setup we're using
 dnl Which version of the canonical setup we're using
-AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.63])
+AC_DEFUN([PANDORA_CANONICAL_VERSION],[0.86])
 
 
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
 AC_DEFUN([PANDORA_FORCE_DEPEND_TRACKING],[
   dnl Force dependency tracking on for Sun Studio builds
   dnl Force dependency tracking on for Sun Studio builds
@@ -24,6 +24,8 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   m4_define([PCT_IGNORE_SHARED_PTR],[no])
   m4_define([PCT_IGNORE_SHARED_PTR],[no])
   m4_define([PCT_FORCE_GCC42],[no])
   m4_define([PCT_FORCE_GCC42],[no])
   m4_define([PCT_SRC_IN_SRC],[no])
   m4_define([PCT_SRC_IN_SRC],[no])
+  m4_define([PCT_VERSION_FROM_VC],[no])
+  m4_define([PCT_USE_VISIBILITY],[yes])
   m4_foreach([pct_arg],[$*],[
   m4_foreach([pct_arg],[$*],[
     m4_case(pct_arg,
     m4_case(pct_arg,
       [use-gnulib], [
       [use-gnulib], [
@@ -42,9 +44,17 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
         m4_undefine([PCT_FORCE_GCC42])
         m4_undefine([PCT_FORCE_GCC42])
         m4_define([PCT_FORCE_GCC42],[yes])
         m4_define([PCT_FORCE_GCC42],[yes])
       ],
       ],
+      [skip-visibility], [
+        m4_undefine([PCT_USE_VISIBILITY])
+        m4_define([PCT_USE_VISIBILITY],[no])
+      ],
       [src-in-src], [
       [src-in-src], [
         m4_undefine([PCT_SRC_IN_SRC])
         m4_undefine([PCT_SRC_IN_SRC])
         m4_define([PCT_SRC_IN_SRC],[yes])
         m4_define([PCT_SRC_IN_SRC],[yes])
+      ],
+      [version-from-vc], [
+        m4_undefine([PCT_VERSION_FROM_VC])
+        m4_define([PCT_VERSION_FROM_VC],[yes])
     ])
     ])
   ])
   ])
 
 
@@ -58,7 +68,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   
   
   AC_CANONICAL_TARGET
   AC_CANONICAL_TARGET
   
   
-  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects)
+  AM_INIT_AUTOMAKE(-Wall -Werror nostdinc subdir-objects foreign)
   m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
   m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
 
 
   m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
   m4_if(PCT_USE_GNULIB,yes,[ gl_EARLY ])
@@ -67,6 +77,11 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_REQUIRE([PANDORA_MAC_GCC42])
   AC_REQUIRE([PANDORA_MAC_GCC42])
   AC_REQUIRE([PANDORA_64BIT])
   AC_REQUIRE([PANDORA_64BIT])
 
 
+  m4_if(PCT_VERSION_FROM_VC,yes,[
+    PANDORA_VC_VERSION
+  ])
+  PANDORA_VERSION
+
   dnl Once we can use a modern autoconf, we can use this
   dnl Once we can use a modern autoconf, we can use this
   dnl AC_PROG_CC_C99
   dnl AC_PROG_CC_C99
   AC_REQUIRE([AC_PROG_CXX])
   AC_REQUIRE([AC_PROG_CXX])
@@ -90,6 +105,7 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
     AS_IF([test "$ac_cv_cxx_stdcxx_98" = "no"],[
       AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
       AC_MSG_ERROR([No working C++ Compiler has been found. ${PACKAGE} requires a C++ compiler that can handle C++98])
     ])
     ])
+
   ])
   ])
   
   
   PANDORA_SHARED_PTR
   PANDORA_SHARED_PTR
@@ -104,6 +120,9 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
     AC_CONFIG_LIBOBJ_DIR([gnulib])
     AC_CONFIG_LIBOBJ_DIR([gnulib])
   ])
   ])
 
 
+  PANDORA_CHECK_C_VERSION
+  PANDORA_CHECK_CXX_VERSION
+
   AC_C_BIGENDIAN
   AC_C_BIGENDIAN
   AC_C_CONST
   AC_C_CONST
   AC_C_INLINE
   AC_C_INLINE
@@ -114,17 +133,71 @@ AC_DEFUN([PANDORA_CANONICAL_TARGET],[
   AC_TYPE_SIZE_T
   AC_TYPE_SIZE_T
   AC_SYS_LARGEFILE
   AC_SYS_LARGEFILE
 
 
+  # off_t is not a builtin type
+  AC_CHECK_SIZEOF(off_t, 4)
+  AS_IF([test "$ac_cv_sizeof_off_t" -eq 0],[
+    AC_MSG_ERROR("${PACKAGE} needs an off_t type.")
+  ])
+
+  AC_CHECK_SIZEOF(size_t)
+  AS_IF([test "$ac_cv_sizeof_size_t" -eq 0],[
+    AC_MSG_ERROR("${PACKAGE} needs an size_t type.")
+  ])
+
+  AC_DEFINE_UNQUOTED([SIZEOF_SIZE_T],[$ac_cv_sizeof_size_t],[Size of size_t as computed by sizeof()])
+  AC_CHECK_SIZEOF(long long)
+  AC_DEFINE_UNQUOTED([SIZEOF_LONG_LONG],[$ac_cv_sizeof_long_long],[Size of long long as computed by sizeof()])
+  AC_CACHE_CHECK([if time_t is unsigned], [ac_cv_time_t_unsigned],[
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+      [[
+#include <time.h>
+      ]],
+      [[
+      int array[(((time_t)-1) > 0) ? 1 : -1];
+      ]])
+    ],[
+      ac_cv_time_t_unsigned=yes
+    ],[
+      ac_cv_time_t_unsigned=no
+    ])
+  ])
+  AS_IF([test "$ac_cv_time_t_unsigned" = "yes"],[
+    AC_DEFINE([TIME_T_UNSIGNED], 1, [Define to 1 if time_t is unsigned])
+  ])
+
+  dnl AC_FUNC_ALLOCA would test for stack direction if we didn't have a working
+  dnl alloca - but we need to know it anyway for check_stack_overrun.
+  PANDORA_STACK_DIRECTION
+
+  AC_CHECK_LIBM
+  
+  AC_CHECK_FUNC(setsockopt, [], [AC_CHECK_LIB(socket, setsockopt)])
+  AC_CHECK_FUNC(bind, [], [AC_CHECK_LIB(bind, bind)])
+
 
 
-  PANDORA_CHECK_C_VERSION
-  PANDORA_CHECK_CXX_VERSION
 
 
   PANDORA_OPTIMIZE
   PANDORA_OPTIMIZE
 
 
-  dnl We need to inject error into the cflags to test if visibility works or not
-  save_CFLAGS="${CFLAGS}"
-  CFLAGS="${CFLAGS} -Werror"
-  gl_VISIBILITY
-  CFLAGS="${save_CFLAGS}"
+  AC_LANG_PUSH(C++)
+  # Test whether madvise() is declared in C++ code -- it is not on some
+  # systems, such as Solaris
+  AC_CHECK_DECLS([madvise], [], [], [AC_INCLUDES_DEFAULT[
+  #if HAVE_SYS_MMAN_H
+  #include <sys/types.h>
+  #include <sys/mman.h>
+  #endif
+  ]])
+  AC_LANG_POP()
+
+  PANDORA_HAVE_GCC_ATOMICS
+
+  m4_if(PCT_USE_VISIBILITY,[yes],[
+    dnl We need to inject error into the cflags to test if visibility works or not
+    save_CFLAGS="${CFLAGS}"
+    CFLAGS="${CFLAGS} -Werror"
+    gl_VISIBILITY
+    CFLAGS="${save_CFLAGS}"
+  ])
 
 
   PANDORA_HEADER_ASSERT
   PANDORA_HEADER_ASSERT
 
 

+ 9 - 2
m4/pandora_check_cxx_standard.m4

@@ -8,9 +8,16 @@ AC_DEFUN([PANDORA_CHECK_CXX_STANDARD],[
   AS_IF([test "$GCC" = "yes"],
   AS_IF([test "$GCC" = "yes"],
         [AS_IF([test "$ac_cv_cxx_compile_cxx0x_native" = "yes"],[],
         [AS_IF([test "$ac_cv_cxx_compile_cxx0x_native" = "yes"],[],
                [AS_IF([test "$ac_cv_cxx_compile_cxx0x_gxx" = "yes"],
                [AS_IF([test "$ac_cv_cxx_compile_cxx0x_gxx" = "yes"],
-                      [CXXFLAGS="-std=gnu++0x ${CXXFLAGS}"],
-                      [CXXFLAGS="-std=gnu++98"])
+                      [CXX_STANDARD="-std=gnu++0x"],
+                      [CXX_STANDARD="-std=gnu++98"])
                ])
                ])
         ])
         ])
+  AM_CXXFLAGS="${CXX_STANDARD} ${AM_CXXFLAGS}"
+  
+  save_CXXFLAGS="${CXXFLAGS}"
+  CXXFLAGS="${CXXFLAGS} ${CXX_STANDARD}"
   AC_CXX_HEADER_STDCXX_98
   AC_CXX_HEADER_STDCXX_98
+  CXXFLAGS="${save_CXXFLAGS}"
+
+  AC_SUBST([CXX_STANDARD])
 ])
 ])

+ 34 - 0
m4/pandora_cinttypes.m4

@@ -0,0 +1,34 @@
+# We check two things: where the include file is for cinttypes. We
+# include AC_TRY_COMPILE for all the combinations we've seen in the
+# wild.  We define one of HAVE_CINTTYPES or HAVE_TR1_CINTTYPES or 
+# HAVE_BOOST_CINTTYPES depending
+# on location.
+
+AC_DEFUN([PANDORA_CXX_CINTTYPES],
+  [AC_REQUIRE([PANDORA_CXX_CSTDINT])
+   AC_MSG_CHECKING(the location of cinttypes)
+   AC_LANG_PUSH(C++)
+   save_CXXFLAGS="${CXXFLAGS}"
+   CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}"
+   ac_cv_cxx_cinttypes=""
+   for location in tr1/cinttypes boost/cinttypes cinttypes; do
+     if test -z "$ac_cv_cxx_cinttypes"; then
+       AC_TRY_COMPILE([#include $ac_cv_cxx_cstdint;
+                       #include <$location>],
+                      [uint32_t foo= UINT32_C(1)],
+                      [ac_cv_cxx_cinttypes="<$location>";])
+     fi
+   done
+   AC_LANG_POP()
+   CXXFLAGS="${save_CXXFLAGS}"
+   if test -n "$ac_cv_cxx_cinttypes"; then
+      AC_MSG_RESULT([$ac_cv_cxx_cinttypes])
+   else
+      ac_cv_cxx_cinttypes="<inttypes.h>"
+      AC_MSG_RESULT()
+      AC_MSG_WARN([Could not find a cinttypes header.])
+   fi
+   AC_DEFINE([__STDC_LIMIT_MACROS],[1],[Use STDC Limit Macros in C++])
+   AC_DEFINE_UNQUOTED(CINTTYPES_H,$ac_cv_cxx_cinttypes,
+                      [the location of <cinttypes>])
+])

+ 33 - 0
m4/pandora_cstdint.m4

@@ -0,0 +1,33 @@
+# We check two things: where the include file is for cstdint. We
+# include AC_TRY_COMPILE for all the combinations we've seen in the
+# wild.  We define one of HAVE_CSTDINT or HAVE_TR1_CSTDINT or 
+# HAVE_BOOST_CSTDINT depending
+# on location.
+
+AC_DEFUN([PANDORA_CXX_CSTDINT],
+  [AC_MSG_CHECKING(the location of cstdint)
+   AC_LANG_PUSH(C++)
+   save_CXXFLAGS="${CXXFLAGS}"
+   CXXFLAGS="${CXX_STANDARD} ${CXXFLAGS}"
+   ac_cv_cxx_cstdint=""
+   for location in tr1/cstdint boost/cstdint cstdint; do
+     if test -z "$ac_cv_cxx_cstdint"; then
+       AC_TRY_COMPILE([#include <$location>],
+                      [uint32_t t],
+                      [ac_cv_cxx_cstdint="<$location>";])
+     fi
+   done
+   AC_LANG_POP()
+   CXXFLAGS="${save_CXXFLAGS}"
+   if test -n "$ac_cv_cxx_cstdint"; then
+      AC_MSG_RESULT([$ac_cv_cxx_cstdint])
+   else
+      AC_DEFINE([__STDC_CONSTANT_MACROS],[1],[Use STDC Constant Macros in C++])
+      AC_DEFINE([__STDC_FORMAT_MACROS],[1],[Use STDC Format Macros in C++])
+      ac_cv_cxx_cstdint="<stdint.h>"
+      AC_MSG_RESULT()
+      AC_MSG_WARN([Could not find a cstdint header.])
+   fi
+   AC_DEFINE_UNQUOTED(CSTDINT_H,$ac_cv_cxx_cstdint,
+                      [the location of <cstdint>])
+])

Некоторые файлы не были показаны из-за большого количества измененных файлов