1 2dnl Process this file with autoconf to produce a configure script 3 4AC_INIT(src/unit.cc) 5AM_INIT_AUTOMAKE(epos, 2.5.37) 6AC_PREFIX_DEFAULT(/usr/local) 7 8CCC="g++ c++ cc++ gcc cc" 9AC_PROG_CC 10AC_PROG_CXX 11if test $GXX = yes; then 12 if $CXX -v 2>&1 | grep -q egcs 13 then AM_CXXFLAGS="-Wall -Wunused -pipe -gstabs+ -fdefer-pop -O" 14 else AM_CXXFLAGS="-Wall -Wunused -gstabs+ -O" 15 fi 16 else AM_CXXFLAGS=-O 17fi 18 19AC_SUBST(LIBTOOL_DEPS) 20AC_SUBST(CONFIGURED_CXXFLAGS) 21AC_SUBST(AM_CXXFLAGS) 22AC_PROG_MAKE_SET 23AC_PROG_LIBTOOL 24 25AC_ARG_WITH(dmalloc, AC_HELP_STRING([--with-dmalloc], [dmalloc debugging library (developers only)]), 26 if test $withval = yes; then 27 AM_CXXFLAGS="${AM_CXXFLAGS} -DWANT_DMALLOC" 28 LIBS="$LIBS -ldmalloc -L/usr/local/lib" 29 fi 30) 31dnl AC_ARG_WITH(regex, --with-regex regular expression substitution, , ) 32AC_ARG_ENABLE(charsets, AC_HELP_STRING([--enable-charsets], [allow automatic conversions between character sets]), 33 if test x$enableval = xno; then 34 AM_CXXFLAGS="${AM_CXXFLAGS} -DFORGET_CHARSETS" 35 fi, 36) 37AC_ARG_ENABLE(portaudio, AC_HELP_STRING([--enable-portaudio], [alternative sound output method]), 38 [case "x$enableval" in 39 xno) 40 EXTRA_PORTAUDIO_DEFS="-DFORGET_PORTAUDIO" 41 EXTRA_PORTAUDIO_LIBS="" 42 ;; 43 xyes) 44 EXTRA_PORTAUDIO_DEFS="" 45 EXTRA_PORTAUDIO_LIBS="-lportaudio -lpablio -L../libs/portaudio/lib -lpthread" 46 ;; 47 *) AC_MSG_ERROR(bad value $enableval for --enable-portaudio) ;; 48 esac], 49 [EXTRA_PORTAUDIO_LIBS="" 50 EXTRA_PORTAUDIO_DEFS="-DFORGET_PORTAUDIO"] 51) 52AM_CONDITIONAL(PORTAUDIO, test "${EXTRA_PORTAUDIO_DEFS}" = "") 53 54AC_LANG_CPLUSPLUS 55 56AC_CHECK_PROGS(LNK, ld wlink, linker) 57AC_CHECK_LIB(stdc++, main) 58AC_SEARCH_LIBS(regcomp, c rx regex System, EXTRA_REGEX_OBJ="", EXTRA_REGEX_OBJ="../libs/regex/rx.$(OBJEXT)") 59AC_SUBST([EXTRA_REGEX_OBJ]) 60AC_SUBST([EXTRA_PORTAUDIO_LIBS]) 61AC_SUBST([EXTRA_PORTAUDIO_DEFS]) 62AC_CHECK_LIB(socket, main) 63AC_CHECK_LIB(lnsl, main) 64AC_LANG_CPLUSPLUS 65AC_PROG_INSTALL 66AC_PROG_YACC 67AM_PROG_LEX 68AC_STDC_HEADERS 69AC_HAVE_HEADERS(strings.h) 70AC_HAVE_HEADERS(string.h) 71AC_HAVE_HEADERS(stdint.h) 72AC_HAVE_HEADERS(io.h) 73AC_HAVE_HEADERS(process.h) 74AC_HAVE_HEADERS(rx.h) 75AC_HAVE_HEADERS(regex.h) 76AC_HAVE_HEADERS(errno.h) 77AC_HAVE_HEADERS(wait.h) 78AC_HAVE_HEADERS(unistd.h) 79AC_HAVE_HEADERS(unix.h) 80AC_HAVE_HEADERS(signal.h) 81AC_HAVE_HEADERS(syslog.h) 82AC_HAVE_HEADERS(time.h) 83AC_HAVE_HEADERS(sys/soundcard.h) 84AC_HAVE_HEADERS(sys/audio.h) 85AC_HAVE_HEADERS(sys/stat.h) 86AC_HAVE_HEADERS(sys/ioctl.h) 87AC_HAVE_HEADERS(sys/socket.h) 88AC_HAVE_HEADERS(sys/select.h) 89AC_HAVE_HEADERS(sys/time.h) 90AC_HAVE_HEADERS(sys/types.h) 91AC_HAVE_HEADERS(sys/termios.h) 92AC_HAVE_HEADERS(netdb.h) 93AC_HAVE_HEADERS(netinet/in.h) 94AC_HAVE_HEADERS(linux/kd.h) 95AC_HAVE_HEADERS(sys/kernel.h) 96AC_HAVE_HEADERS(sys/name.h) 97AC_HAVE_HEADERS(fcntl.h) 98AC_HAVE_HEADERS(direct.h) 99AC_HAVE_FUNCS(strerror vsnprintf strdup fork getegid strcasecmp stricmp getcwd gethostname gettimeofday qnx_name_attach abort kill pipe _pipe) 100 101AC_CACHE_CHECK([for glibc regex error codes], 102 epos_cv_symb_regeend, 103 AC_TRY_COMPILE( 104 #include <sys/types.h> 105 #ifdef HAVE_RX_H 106 #include <rx.h> 107 #else 108 #ifdef HAVE_REGEX_H 109 #include <regex.h> 110 #else 111 #include "rx.h" 112 #endif 113 #endif 114 , 115 int result = REG_EEND; 116 int result2 = REG_ESIZE; 117 return 0;, 118 epos_cv_symb_regeend=yes, 119 epos_cv_symb_regeend=no) 120) 121if test "$epos_cv_symb_regeend" = yes; then 122 AC_DEFINE([HAVE_REG_EEND], [], [ Define if your regex library defines the REG_EEND and REG_ESIZE error codes ]) 123fi 124 125AC_CACHE_CHECK([for regmatch_t.rm_so], 126 epos_cv_struct_rm_so, 127 AC_TRY_COMPILE( 128 #include <sys/types.h> 129 #ifdef HAVE_RX_H 130 #include <rx.h> 131 #else 132 #ifdef HAVE_REGEX_H 133 #include <regex.h> 134 #else 135 #include "rx.h" 136 #endif 137 #endif 138 , 139 regmatch_t rt; 140 rt.rm_so; 141 return 0;, 142 epos_cv_struct_rm_so=yes, 143 epos_cv_struct_rm_so=no) 144) 145if test "$epos_cv_struct_rm_so" = yes; then 146 AC_DEFINE([HAVE_RM_SO], [], [ Define if your regex library defines the REG_EEND and REG_ESIZE error codes ]) 147fi 148 149 150AC_CACHE_CHECK([for terminate], 151 epos_cv_fn_terminate, 152 AC_TRY_COMPILE( 153 [ #include <stdlib.h> ], 154 [ throw new int; exit(1); terminate() ] , 155 [ epos_cv_fn_terminate=yes ], 156 [ epos_cv_fn_terminate=no ], 157 [ epos_cv_fn_terminate=yes ]) 158) 159if test "$epos_cv_fn_terminate" = yes; then 160 AC_DEFINE([HAVE_TERMINATE], [], [ Define if you have the built-in terminate function. ]) 161fi 162 163AC_CACHE_CHECK([for explicit template instatiations], 164 epos_cv_c_templ_inst, 165 AC_TRY_COMPILE( 166 [ template <class any_type> class some_type{}; template class some_type<int>; ] , 167 [], 168 [ epos_cv_c_templ_inst=yes ], 169 [ epos_cv_c_templ_inst=no ]) 170) 171if test "$epos_cv_c_templ_inst" = yes; then 172 AC_DEFINE([HAVE_TEMPL_INST], [], [ Define if your compiler understands explicit class template instantiations 173 as in template class templ_type<param_type>; ] 174) 175fi 176 177AC_CACHE_CHECK([for socklen_t], 178 epos_cv_type_socklen, 179 AC_TRY_COMPILE( 180 #ifdef HAVE_SYS_SOCKET_H 181 #include <sys/socket.h> 182 #endif 183 #include <sys/types.h> 184 socklen_t x;, 185 , 186 epos_cv_type_socklen=yes, 187 epos_cv_type_socklen=no) 188) 189if test "$epos_cv_type_socklen" = yes; then 190 AC_DEFINE([HAVE_SOCKLEN_T], [], [ Define if you have socklen_t in sys/socket.h or sys/types.h. ]) 191fi 192 193broken_enum_bitfields_test='\ 194 #include <stdlib.h> \ 195 enum t { a, b, c }; \ 196 struct s \ 197 { \ 198 t m : 2; \ 199 t n : 2; \ 200 t o : 2; \ 201 }; \ 202 s arr[[2]] = {{a, b, c},{c, c, c}};\ 203 int main() \ 204 { \ 205 exit (arr[[1]].n != 2); \ 206 return 0; \ 207 }\ 208 ' 209 210AC_CACHE_CHECK([for broken enum bitfields], 211 epos_cv_c_broken_enum_bitfields, 212 AC_TRY_RUN( 213 $broken_enum_bitfields_test, 214 epos_cv_c_broken_enum_bitfields=no, 215 epos_cv_c_broken_enum_bitfields=yes, 216 epos_cv_c_broken_enum_bitfields=yes) 217) 218if test "$epos_cv_c_broken_enum_bitfields" = yes; then 219 AC_DEFINE([BROKEN_ENUM_BITFIELDS], [], [ Define if your compiler incorrectly treats enum bit fields as signed ]) 220fi 221 222EPOS_CXX_OPTION(mafwks, 223 [mac audio frameworks], 224 ["-framework CoreAudio -framework AudioToolbox"]) 225CONFIGURED_CXXFLAGS="$CONFIGURED_CXXFLAGS $mafwks" 226 227 228AM_CONFIG_HEADER(config.h) 229#AC_CONFIG_SUBDIRS(libs/portaudio) 230AC_OUTPUT(Makefile src/Makefile src/nnet/Makefile src/tests/Makefile \ 231 libs/Makefile libs/regex/Makefile libs/portaudio/Makefile \ 232 cfg/Makefile arch/Makefile doc/Makefile) 233 234