| ## Process this file with autoconf to produce configure. |
| ## In general, the safest way to proceed is to run ./autogen.sh |
| |
| # make sure we're interpreted by some minimal autoconf |
| AC_PREREQ(2.57) |
| |
| AC_INIT(gflags, 1.6, opensource@google.com) |
| # Update this value for every release! (A:B:C will map to foo.so.(A-C).C.B) |
| # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html |
| SO_VERSION=2:0:0 |
| |
| # The argument here is just something that should be in the current directory |
| # (for sanity checking) |
| AC_CONFIG_SRCDIR(README) |
| AC_CONFIG_MACRO_DIR([m4]) |
| AM_INIT_AUTOMAKE([dist-zip]) |
| AM_CONFIG_HEADER(src/config.h) |
| |
| # Checks for programs. |
| AC_PROG_CXX |
| AC_PROG_CC |
| AC_PROG_CPP |
| AM_CONDITIONAL(GCC, test "$GCC" = yes) # let the Makefile know if we're gcc |
| AC_CANONICAL_HOST |
| |
| # MinGW uses autoconf, but also needs the windows shim routines |
| # (since it doesn't have its own support for, say, pthreads). |
| # This requires us to #include a special header file, and also to |
| # link in some windows versions of .o's instead of the unix versions. |
| AH_BOTTOM([ |
| #if defined( __MINGW32__) || defined(__MINGW64__) |
| #include "windows/port.h" |
| #endif |
| ]) |
| # Populate $host_cpu, $host_os, etc. |
| AC_CANONICAL_HOST |
| case $host_os in |
| *mingw*) |
| # Disabling fast install keeps libtool from creating wrapper scripts |
| # around the executables it builds. Such scripts have caused failures on |
| # MinGW. Using this option means an extra link step is executed during |
| # "make install". |
| AC_DISABLE_FAST_INSTALL |
| # /tmp is a mount-point in mingw, and hard to use. use cwd instead |
| TEST_TMPDIR=gflags_testdir |
| ;; |
| *) |
| AC_ENABLE_FAST_INSTALL |
| TEST_TMPDIR=/tmp/gflags |
| ;; |
| esac |
| AC_SUBST(TEST_TMPDIR) |
| |
| # Uncomment this if you'll be exporting libraries (.so's) |
| AC_PROG_LIBTOOL |
| AC_SUBST(LIBTOOL_DEPS) |
| AC_SUBST(SO_VERSION) |
| |
| # Check whether some low-level functions/files are available |
| AC_HEADER_STDC |
| |
| # These are tested for by AC_HEADER_STDC, but I check again to set the var |
| AC_CHECK_HEADER(stdint.h, ac_cv_have_stdint_h=1, ac_cv_have_stdint_h=0) |
| AC_CHECK_HEADER(sys/types.h, ac_cv_have_systypes_h=1, ac_cv_have_systypes_h=0) |
| AC_CHECK_HEADER(inttypes.h, ac_cv_have_inttypes_h=1, ac_cv_have_inttypes_h=0) |
| AC_CHECK_HEADERS([fnmatch.h]) |
| AC_CHECK_HEADERS([sys/stat.h]) |
| AC_CHECK_HEADERS([unistd.h]) |
| |
| # These are the types I need. We look for them in either stdint.h, |
| # sys/types.h, or inttypes.h, all of which are part of the default-includes. |
| AC_CHECK_TYPE(uint16_t, ac_cv_have_uint16_t=1, ac_cv_have_uint16_t=0) |
| AC_CHECK_TYPE(u_int16_t, ac_cv_have_u_int16_t=1, ac_cv_have_u_int16_t=0) |
| AC_CHECK_TYPE(__int16, ac_cv_have___int16=1, ac_cv_have___int16=0) |
| |
| AC_CHECK_FUNCS([strtoll strtoq]) |
| |
| AX_C___ATTRIBUTE__ |
| # We only care about __attribute__ ((unused)) |
| if test x"$ac_cv___attribute__" = x"yes"; then |
| ac_cv___attribute__unused="__attribute__ ((unused))" |
| else |
| ac_cv___attribute__unused= |
| fi |
| |
| ACX_PTHREAD |
| |
| # Find out what namespace 'normal' STL code lives in, and also what namespace |
| # the user wants our classes to be defined in |
| AC_CXX_STL_NAMESPACE |
| AC_DEFINE_GOOGLE_NAMESPACE(google) |
| |
| # Solaris 10 6/06 has a bug where /usr/sfw/lib/libstdc++.la is empty. |
| # If so, we replace it with our own version. |
| LIBSTDCXX_LA_LINKER_FLAG= |
| if test -f /usr/sfw/lib/libstdc++.la && ! test -s /usr/sfw/lib/libstdc++.la |
| then |
| LIBSTDCXX_LA_LINKER_FLAG='-L$(top_srcdir)/src/solaris' |
| fi |
| AC_SUBST(LIBSTDCXX_LA_LINKER_FLAG) |
| |
| # These are what's needed by gflags.h.in |
| AC_SUBST(ac_google_start_namespace) |
| AC_SUBST(ac_google_end_namespace) |
| AC_SUBST(ac_google_namespace) |
| AC_SUBST(ac_cv___attribute__unused) |
| AC_SUBST(ac_cv_have_stdint_h) |
| AC_SUBST(ac_cv_have_systypes_h) |
| AC_SUBST(ac_cv_have_inttypes_h) |
| AC_SUBST(ac_cv_have_uint16_t) |
| AC_SUBST(ac_cv_have_u_int16_t) |
| AC_SUBST(ac_cv_have___int16) |
| |
| ## Check out ../autoconf/ for other macros you can call to do useful stuff |
| |
| # For windows, this has a non-trivial value (__declspec(export)), but any |
| # system that uses configure wants this to be the empty string. |
| AC_DEFINE(GFLAGS_DLL_DECL,, |
| [Always the empty-string on non-windows systems. |
| On windows, should be "__declspec(dllexport)". |
| This way, when we compile the dll, we export our functions/classes. |
| It's safe to define this here because config.h is only used |
| internally, to compile the DLL, and every DLL source file |
| #includes "config.h" before anything else.]) |
| |
| # Write generated configuration file, and also .h files |
| AC_CONFIG_FILES([Makefile |
| src/gflags/gflags.h src/gflags/gflags_declare.h |
| src/gflags/gflags_completions.h]) |
| AC_OUTPUT |