Postpone cleaning up of child until getChildResult() is called
[remote/remote-mci.git] / configure.in
blobbf58b847e1e11739929bf482afffb4f63106dad4
1 # Process this file with autoconf to produce a configure script.
3 AC_PREREQ(2.59)
5 AC_INIT([remote-mci],[0.9.git],[sensornet@diku.dk])
6 AC_CONFIG_AUX_DIR([config])
7 AC_CONFIG_HEADER([config/config.h])
8 AC_CONFIG_SRCDIR([mcs/MoteControlInfrastructure.h])
10 AM_INIT_AUTOMAKE([remote-mci],[0.9.git],[sensornet@diku.dk])
12 #######################################################################
13 ## Helper macros.
14 #######################################################################
16 AC_DEFUN([REMOTE_PARSE_WITHVAL],
17 [m4_toupper(CONFIG_$1)=no;
18  m4_toupper(CONFIG_$1)DIR=;
19 if test "$withval" = "yes"; then
20         m4_toupper(CONFIG_$1)=yes;
21 else
22         m4_toupper(CONFIG_$1)=yes;
23         m4_toupper(CONFIG_$1)DIR="$withval";
25 AC_SUBST(m4_toupper(CONFIG_$1))
28 AC_DEFUN([REMOTE_PARSE_ENABLEVAL],
29 [m4_toupper(CONFIG_$1)=yes;
30 if test "$enableval" = "no"; then
31         m4_toupper(CONFIG_$1)=no;
33 AC_SUBST(m4_toupper(CONFIG_$1))
37 #######################################################################
38 ## Configure options.
39 #######################################################################
41 AC_ARG_ENABLE(diku-mch,
42 AS_HELP_STRING([--disable-diku-mch],[disable building of the DIKU mote control host module]))
43 REMOTE_PARSE_ENABLEVAL(diku_mch)
45 AC_ARG_ENABLE(diku-mcs,
46 AS_HELP_STRING([--disable-diku-mcs],[disable building of the DIKU mote control server module]))
47 REMOTE_PARSE_ENABLEVAL(diku_mcs)
49 #######################################################################
50 ## Checks for programs.
51 #######################################################################
53 AC_PROG_CXX
54 AC_PROG_CC
55 AC_PROG_INSTALL
56 AC_PROG_RANLIB
57 AC_PROG_MAKE_SET
58 AC_CHECK_TOOL(AR, ar, :)
59 AC_CHECK_TOOL(DOXYGEN, doxygen, :)
60 AC_CHECK_TOOL(ASCIIDOC, asciidoc, :)
62 #######################################################################
63 ## Checks for libraries.
64 #######################################################################
66 AX_BOOST_PROGRAM_OPTIONS
67 AX_LIB_MYSQL
68 AX_LIB_MYSQLPP
70 #######################################################################
71 ## Checks for header files.
72 #######################################################################
74 AC_HEADER_STDC
75 AC_HEADER_SYS_WAIT
77 AC_CHECK_HEADERS([arpa/inet.h])
78 AC_CHECK_HEADERS([fcntl.h])
79 AC_CHECK_HEADERS([netdb.h])
80 AC_CHECK_HEADERS([netinet/in.h])
81 AC_CHECK_HEADERS([stdlib.h])
82 AC_CHECK_HEADERS([sys/ioctl.h])
83 AC_CHECK_HEADERS([sys/socket.h])
84 AC_CHECK_HEADERS([sys/time.h])
85 AC_CHECK_HEADERS([syslog.h])
86 AC_CHECK_HEADERS([termios.h])
87 AC_CHECK_HEADERS([unistd.h])
89 #######################################################################
90 ## Checks for typedefs, structures, and compiler characteristics.
91 #######################################################################
93 AC_TYPE_INT16_T
94 AC_TYPE_INT32_T
95 AC_TYPE_INT64_T
97 AC_TYPE_UINT8_T
98 AC_TYPE_UINT16_T
99 AC_TYPE_UINT32_T
100 AC_TYPE_UINT64_T
102 AC_TYPE_PID_T
103 AC_TYPE_SSIZE_T
105 AC_C_CONST
106 AC_C_INLINE
108 AC_PROG_GCC_TRADITIONAL
110 AC_HEADER_STDBOOL
111 AC_HEADER_TIME
113 #######################################################################
114 ## Checks for library functions.
115 #######################################################################
117 AC_FUNC_FORK
118 AC_FUNC_VPRINTF
120 AC_CHECK_FUNCS([gethostbyaddr])
121 AC_CHECK_FUNCS([gethostbyname])
122 AC_CHECK_FUNCS([inet_ntoa])
123 AC_CHECK_FUNCS([memset])
124 AC_CHECK_FUNCS([mkfifo])
125 AC_CHECK_FUNCS([select])
126 AC_CHECK_FUNCS([socket])
128 AC_TYPE_SIGNAL
130 #######################################################################
131 ## Check dependencies.
132 #######################################################################
134 if test "x$CONFIG_DIKU_MCH" = "xyes"; then
135         if test "x$CONFIG_BOOST_PROGRAM_OPTIONS" != "xyes"; then
136                 if test "x$enable_mch" = "xyes"; then
137                         AC_MSG_ERROR([MCH dependencies not found on the system])
138                 else
139                         CONFIG_DIKU_MCH=no
140                 fi
141         fi
143 AM_CONDITIONAL(CONFIG_DIKU_MCH, test "x$CONFIG_DIKU_MCH" = "xyes")
145 if test "x$CONFIG_DIKU_MCS" = "xyes"; then
146         if test "x$CONFIG_BOOST_PROGRAM_OPTIONS" != "xyes" ||
147            test "x$CONFIG_MYSQL" != "xyes" ||
148            test "x$CONFIG_MYSQLPP" != "xyes"; then
149                 if test "x$enable_mcs" = "xyes"; then
150                         AC_MSG_ERROR([MCS dependencies not found on the system])
151                 else
152                         CONFIG_DIKU_MCS=no
153                 fi
154         fi
156 AM_CONDITIONAL(CONFIG_DIKU_MCS, test "x$CONFIG_DIKU_MCS" = "xyes")
158 #######################################################################
159 ## Output files.
160 #######################################################################
162 AC_CONFIG_FILES([
163                  Makefile
164                  diku_mch/Makefile
165                  diku_mch/plugpiper/Makefile
166                  diku_mcs/Makefile
167                  doc/Makefile
168                  libutil/Makefile
169                  mcs/Makefile
170                  protocols/Makefile
172 AC_OUTPUT
174 #######################################################################
175 ## Output build summary.
176 #######################################################################
178 AC_MSG_RESULT([Found dependencies:])
179 AC_MSG_RESULT([  Boost program option library .... $CONFIG_BOOST_PROGRAM_OPTIONS])
180 AC_MSG_RESULT([  MySQL library ................... $CONFIG_MYSQL])
181 AC_MSG_RESULT([  MySQL++ library ................. $CONFIG_MYSQLPP])
182 AC_MSG_RESULT([Will build:])
183 AC_MSG_RESULT([  DIKU mote control host .......... $CONFIG_DIKU_MCH])
184 AC_MSG_RESULT([  DIKU mote control server ........ $CONFIG_DIKU_MCS])