cannam@133
|
1 ## Process this file with autoconf to produce configure.
|
cannam@133
|
2
|
cannam@133
|
3 AC_INIT([Capn Proto],[0.6-dev],[capnproto@googlegroups.com],[capnproto-c++])
|
cannam@133
|
4
|
cannam@133
|
5 AC_CONFIG_SRCDIR([src/capnp/layout.c++])
|
cannam@133
|
6 AC_CONFIG_AUX_DIR([build-aux])
|
cannam@133
|
7 AC_CONFIG_HEADERS([config.h])
|
cannam@133
|
8 AC_CONFIG_MACRO_DIR([m4])
|
cannam@133
|
9
|
cannam@133
|
10 # autoconf's default CXXFLAGS are usually "-g -O2". A far more reasonable
|
cannam@133
|
11 # default is -O2 -NDEBUG.
|
cannam@133
|
12 AS_IF([test "x${ac_cv_env_CFLAGS_set}" = "x"],
|
cannam@133
|
13 [CFLAGS="-O2 -DNDEBUG"])
|
cannam@133
|
14 AS_IF([test "x${ac_cv_env_CXXFLAGS_set}" = "x"],
|
cannam@133
|
15 [CXXFLAGS="-O2 -DNDEBUG"])
|
cannam@133
|
16
|
cannam@133
|
17 AM_INIT_AUTOMAKE([tar-ustar])
|
cannam@133
|
18
|
cannam@133
|
19 AC_ARG_WITH([external-capnp],
|
cannam@133
|
20 [AS_HELP_STRING([--with-external-capnp],
|
cannam@133
|
21 [use the system capnp binary (or the one specified with $CAPNP) instead of compiling a new
|
cannam@133
|
22 one (useful for cross-compiling)])],
|
cannam@133
|
23 [external_capnp=yes],[external_capnp=no])
|
cannam@133
|
24
|
cannam@133
|
25 AC_ARG_ENABLE([reflection], [
|
cannam@133
|
26 AS_HELP_STRING([--disable-reflection], [
|
cannam@133
|
27 compile Cap'n Proto in "lite mode", in which all reflection APIs (schema.h, dynamic.h, etc.)
|
cannam@133
|
28 are not included. Produces a smaller library at the cost of features. All programs built
|
cannam@133
|
29 against the library MUST be compiled with -DCAPNP_LITE=1. Note that because the compiler
|
cannam@133
|
30 itself uses reflection in its implementation, you must also use --with-external-capnp when
|
cannam@133
|
31 using this option.])
|
cannam@133
|
32 ], [
|
cannam@133
|
33 case "${enableval}" in
|
cannam@133
|
34 yes)
|
cannam@133
|
35 lite_mode=no
|
cannam@133
|
36 ;;
|
cannam@133
|
37 no)
|
cannam@133
|
38 lite_mode=yes
|
cannam@133
|
39 AS_IF([test "$external_capnp" != "yes"], [
|
cannam@133
|
40 AC_MSG_ERROR([you must specify --with-external-capnp when using --disable-reflection])
|
cannam@133
|
41 ])
|
cannam@133
|
42 ;;
|
cannam@133
|
43 *)
|
cannam@133
|
44 AC_MSG_ERROR([bad value ${enableval} for --enable-reflection])
|
cannam@133
|
45 ;;
|
cannam@133
|
46 esac
|
cannam@133
|
47 ], [lite_mode=no])
|
cannam@133
|
48
|
cannam@133
|
49 # Checks for programs.
|
cannam@133
|
50 AC_PROG_CC
|
cannam@133
|
51 AC_PROG_CXX
|
cannam@133
|
52 AC_LANG([C++])
|
cannam@133
|
53 AX_CXX_COMPILE_STDCXX_11
|
cannam@133
|
54
|
cannam@133
|
55 AS_CASE("${host_os}", *mingw*, [
|
cannam@133
|
56 # We don't use pthreads on MinGW.
|
cannam@133
|
57 PTHREAD_CFLAGS="-mthreads"
|
cannam@133
|
58 PTHREAD_LIBS=""
|
cannam@133
|
59 PTHREAD_CC=""
|
cannam@133
|
60 AC_SUBST(PTHREAD_LIBS)
|
cannam@133
|
61 AC_SUBST(PTHREAD_CFLAGS)
|
cannam@133
|
62 AC_SUBST(PTHREAD_CC)
|
cannam@133
|
63 ], *, [
|
cannam@133
|
64 ACX_PTHREAD
|
cannam@133
|
65 ])
|
cannam@133
|
66
|
cannam@133
|
67 LT_INIT
|
cannam@133
|
68
|
cannam@133
|
69 AS_IF([test "$external_capnp" != "no"], [
|
cannam@133
|
70 AS_IF([test "x$CAPNP" = "x"], [CAPNP="capnp"], [with_capnp=yes])
|
cannam@133
|
71 AS_IF([test "x$CAPNPC_CXX" = "x"], [
|
cannam@133
|
72 # CAPNPC_CXX was not specified. Choose a reasonable default.
|
cannam@133
|
73 AS_CASE([$CAPNP], [*/*], [
|
cannam@133
|
74 # $CAPNP contains a slash, so it's not on $PATH. Assume capnpc-c++ is not either, but is
|
cannam@133
|
75 # in the same directory.
|
cannam@133
|
76 CAPNPC_CXX=`dirname $CAPNP`/capnpc-c++
|
cannam@133
|
77 ], [
|
cannam@133
|
78 # $CAPNP is on $PATH, so tell it to find the plugin on $PATH as well.
|
cannam@133
|
79 CAPNPC_CXX="c++"
|
cannam@133
|
80 ])
|
cannam@133
|
81 ])
|
cannam@133
|
82 AC_SUBST([CAPNP])
|
cannam@133
|
83 AC_SUBST([CAPNPC_CXX])
|
cannam@133
|
84 ])
|
cannam@133
|
85 AM_CONDITIONAL([USE_EXTERNAL_CAPNP], [test "$external_capnp" != "no"])
|
cannam@133
|
86
|
cannam@133
|
87 AM_CONDITIONAL([LITE_MODE], [test "$lite_mode" = "yes"])
|
cannam@133
|
88
|
cannam@133
|
89 AS_IF([test "$lite_mode" = "yes"], [
|
cannam@133
|
90 CXXFLAGS="-DCAPNP_LITE $CXXFLAGS"
|
cannam@133
|
91 CAPNP_LITE_FLAG=-DCAPNP_LITE
|
cannam@133
|
92 ])
|
cannam@133
|
93 AC_SUBST([CAPNP_LITE_FLAG])
|
cannam@133
|
94
|
cannam@133
|
95 AC_SEARCH_LIBS(sched_yield, rt)
|
cannam@133
|
96
|
cannam@133
|
97 # Users will need to use the same -stdlib as us so we'd better let pkg-config know about it.
|
cannam@133
|
98 STDLIB_FLAG=`echo "$CXX $CXXFLAGS" | grep -o ' [[-]]stdlib=[[^ ]]*'`
|
cannam@133
|
99 AC_SUBST([STDLIB_FLAG])
|
cannam@133
|
100
|
cannam@133
|
101 LIBS="$PTHREAD_LIBS $LIBS"
|
cannam@133
|
102 CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS"
|
cannam@133
|
103
|
cannam@133
|
104 AC_CONFIG_FILES([Makefile capnp.pc capnp-rpc.pc capnp-json.pc kj.pc kj-async.pc])
|
cannam@133
|
105 AC_OUTPUT
|