cannam@62: ## Process this file with autoconf to produce configure. cannam@62: cannam@62: AC_INIT([Capn Proto],[0.6.0],[capnproto@googlegroups.com],[capnproto-c++]) cannam@62: cannam@62: AC_CONFIG_SRCDIR([src/capnp/layout.c++]) cannam@62: AC_CONFIG_AUX_DIR([build-aux]) cannam@62: AC_CONFIG_HEADERS([config.h]) cannam@62: AC_CONFIG_MACRO_DIR([m4]) cannam@62: cannam@62: # autoconf's default CXXFLAGS are usually "-g -O2". A far more reasonable cannam@62: # default is -O2 -NDEBUG. cannam@62: AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"], cannam@62: [CFLAGS="-O2 -DNDEBUG"]) cannam@62: AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"], cannam@62: [CXXFLAGS="-O2 -DNDEBUG"]) cannam@62: cannam@62: AM_INIT_AUTOMAKE([tar-ustar]) cannam@62: cannam@62: AC_ARG_WITH([external-capnp], cannam@62: [AS_HELP_STRING([--with-external-capnp], cannam@62: [use the system capnp binary (or the one specified with $CAPNP) instead of compiling a new cannam@62: one (useful for cross-compiling)])], cannam@62: [external_capnp=yes],[external_capnp=no]) cannam@62: cannam@62: AC_ARG_ENABLE([reflection], [ cannam@62: AS_HELP_STRING([--disable-reflection], [ cannam@62: compile Cap'n Proto in "lite mode", in which all reflection APIs (schema.h, dynamic.h, etc.) cannam@62: are not included. Produces a smaller library at the cost of features. All programs built cannam@62: against the library MUST be compiled with -DCAPNP_LITE=1. Note that because the compiler cannam@62: itself uses reflection in its implementation, you must also use --with-external-capnp when cannam@62: using this option.]) cannam@62: ], [ cannam@62: case "${enableval}" in cannam@62: yes) cannam@62: lite_mode=no cannam@62: ;; cannam@62: no) cannam@62: lite_mode=yes cannam@62: AS_IF([test "$external_capnp" != "yes"], [ cannam@62: AC_MSG_ERROR([you must specify --with-external-capnp when using --disable-reflection]) cannam@62: ]) cannam@62: ;; cannam@62: *) cannam@62: AC_MSG_ERROR([bad value ${enableval} for --enable-reflection]) cannam@62: ;; cannam@62: esac cannam@62: ], [lite_mode=no]) cannam@62: cannam@62: # Checks for programs. cannam@62: AC_PROG_CC cannam@62: AC_PROG_CXX cannam@62: AC_LANG([C++]) cannam@62: AX_CXX_COMPILE_STDCXX_11 cannam@62: cannam@62: AS_CASE("${host_os}", *mingw*, [ cannam@62: # We don't use pthreads on MinGW. cannam@62: PTHREAD_CFLAGS="-mthreads" cannam@62: PTHREAD_LIBS="" cannam@62: PTHREAD_CC="" cannam@62: ASYNC_LIBS="-lws2_32" cannam@62: AC_SUBST(PTHREAD_LIBS) cannam@62: AC_SUBST(PTHREAD_CFLAGS) cannam@62: AC_SUBST(PTHREAD_CC) cannam@62: AC_SUBST(ASYNC_LIBS) cannam@62: ], *, [ cannam@62: ACX_PTHREAD cannam@62: ASYNC_LIBS="" cannam@62: AC_SUBST(ASYNC_LIBS) cannam@62: ]) cannam@62: cannam@62: LT_INIT cannam@62: cannam@62: AS_IF([test "$external_capnp" != "no"], [ cannam@62: AS_IF([test "x$CAPNP" = "x"], [CAPNP="capnp"], [with_capnp=yes]) cannam@62: AS_IF([test "x$CAPNPC_CXX" = "x"], [ cannam@62: # CAPNPC_CXX was not specified. Choose a reasonable default. cannam@62: AS_CASE([$CAPNP], [*/*], [ cannam@62: # $CAPNP contains a slash, so it's not on $PATH. Assume capnpc-c++ is not either, but is cannam@62: # in the same directory. cannam@62: CAPNPC_CXX=`dirname $CAPNP`/capnpc-c++ cannam@62: ], [ cannam@62: # $CAPNP is on $PATH, so tell it to find the plugin on $PATH as well. cannam@62: CAPNPC_CXX="c++" cannam@62: ]) cannam@62: ]) cannam@62: AC_SUBST([CAPNP]) cannam@62: AC_SUBST([CAPNPC_CXX]) cannam@62: ]) cannam@62: AM_CONDITIONAL([USE_EXTERNAL_CAPNP], [test "$external_capnp" != "no"]) cannam@62: cannam@62: AM_CONDITIONAL([LITE_MODE], [test "$lite_mode" = "yes"]) cannam@62: cannam@62: AS_IF([test "$lite_mode" = "yes"], [ cannam@62: CXXFLAGS="-DCAPNP_LITE $CXXFLAGS" cannam@62: CAPNP_LITE_FLAG=-DCAPNP_LITE cannam@62: ]) cannam@62: AC_SUBST([CAPNP_LITE_FLAG]) cannam@62: cannam@62: AC_SEARCH_LIBS(sched_yield, rt) cannam@62: cannam@62: # Users will need to use the same -stdlib as us so we'd better let pkg-config know about it. cannam@62: STDLIB_FLAG=`echo "$CXX $CXXFLAGS" | grep -o ' [[-]]stdlib=[[^ ]]*'` cannam@62: AC_SUBST([STDLIB_FLAG]) cannam@62: cannam@62: LIBS="$PTHREAD_LIBS $LIBS" cannam@62: CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" cannam@62: cannam@62: AC_CONFIG_FILES([Makefile capnp.pc capnp-rpc.pc capnp-json.pc kj.pc kj-async.pc]) cannam@62: AC_OUTPUT