diff src/capnproto-0.6.0/c++/configure.ac @ 147:45360b968bf4

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