1AC_INIT([Arts++], [1.1.a12]) 2AC_PREREQ(2.53) 3AC_CONFIG_SRCDIR(classes/include/Arts.hh) 4AC_CONFIG_HEADER(classes/include/caida_t.h classes/include/artslocal.h include/aclocal.h classes/include/Ipv4PrefixPatricia.hh) 5 6dnl @(#) $Name: arts++-1-1-a13 $ 7dnl @(#) $Id: configure.in,v 1.6 2006/09/08 22:30:05 youngh Exp $ 8 9dnl ### override prefix if not set 10 11if test "$prefix" = "NONE"; then 12 prefix="/usr/local/arts" 13fi 14 15AC_LANG(C++) 16 17dnl ### Checks for programs. 18 19AC_PROG_CC 20AC_PROG_CXX 21AC_AIX 22AC_PROG_RANLIB 23AC_PATH_XTRA 24AC_CANONICAL_SYSTEM 25AM_DISABLE_SHARED 26AM_PROG_LIBTOOL 27 28inttypes=no 29AC_CHECK_HEADERS(inttypes.h,[inttypes=yes]) 30case $inttypes in 31 yes) 32 AC_MSG_CHECKING([for int8_t in <inttypes.h>]) 33 AC_TRY_COMPILE([#include <inttypes.h>], 34 [int8_t bar;], 35 [AC_DEFINE(HAVE_INT8_T) 36 AC_MSG_RESULT(yes) 37 ], 38 AC_MSG_RESULT(no)) 39 AC_MSG_CHECKING([for int16_t in <inttypes.h>]) 40 AC_TRY_COMPILE([#include <inttypes.h>], 41 [int16_t bar;], 42 [AC_DEFINE(HAVE_INT16_T) 43 AC_MSG_RESULT(yes) 44 ], 45 AC_MSG_RESULT(no)) 46 AC_MSG_CHECKING([for int32_t in <inttypes.h>]) 47 AC_TRY_COMPILE([#include <inttypes.h>], 48 [int32_t bar;], 49 [AC_DEFINE(HAVE_INT32_T) 50 AC_MSG_RESULT(yes) 51 ], 52 AC_MSG_RESULT(no)) 53 AC_MSG_CHECKING([for int64_t in <inttypes.h>]) 54 AC_TRY_COMPILE([#include <inttypes.h>], 55 [int64_t bar;], 56 [AC_DEFINE(HAVE_INT64_T) 57 AC_MSG_RESULT(yes) 58 ], 59 AC_MSG_RESULT(no)) 60 AC_MSG_CHECKING([for uint8_t in <inttypes.h>]) 61 AC_TRY_COMPILE([#include <inttypes.h>], 62 [uint8_t bar;], 63 [AC_DEFINE(HAVE_UINT8_T) 64 AC_MSG_RESULT(yes) 65 ], 66 AC_MSG_RESULT(no)) 67 AC_MSG_CHECKING([for uint16_t in <inttypes.h>]) 68 AC_TRY_COMPILE([#include <inttypes.h>], 69 [uint16_t bar;], 70 [AC_DEFINE(HAVE_UINT16_T) 71 AC_MSG_RESULT(yes) 72 ], 73 AC_MSG_RESULT(no)) 74 AC_MSG_CHECKING([for uint32_t in <inttypes.h>]) 75 AC_TRY_COMPILE([#include <inttypes.h>], 76 [uint32_t bar;], 77 [AC_DEFINE(HAVE_UINT32_T) 78 AC_MSG_RESULT(yes) 79 ], 80 AC_MSG_RESULT(no)) 81 AC_MSG_CHECKING([for uint64_t in <inttypes.h>]) 82 AC_TRY_COMPILE([#include <inttypes.h>], 83 [uint64_t bar;], 84 [AC_DEFINE(HAVE_UINT64_T) 85 AC_MSG_RESULT(yes) 86 ], 87 AC_MSG_RESULT(no)) 88 ;; 89esac 90 91dnl --------------------------------------------------------------------------- 92dnl Check for <machine/types.h>, then check to see if it's got definitions 93dnl for the types in the ISO C working draft <inttypes.h> or includes 94dnl some other header files that defines them. 95dnl --------------------------------------------------------------------------- 96 97machine_types=no 98AC_CHECK_HEADERS(machine/types.h,[machine_types=yes]) 99 100case $machine_types in 101 yes) 102 AC_MSG_CHECKING([for int8_t in <machine/types.h>]) 103 AC_TRY_COMPILE([#include <machine/types.h>], 104 [int8_t bar;], 105 [AC_DEFINE(HAVE_INT8_T) 106 AC_MSG_RESULT(yes) 107 ], 108 AC_MSG_RESULT(no)) 109 AC_MSG_CHECKING([for int16_t in <machine/types.h>]) 110 AC_TRY_COMPILE([#include <machine/types.h>], 111 [int16_t bar;], 112 [AC_DEFINE(HAVE_INT16_T) 113 AC_MSG_RESULT(yes) 114 ], 115 AC_MSG_RESULT(no)) 116 AC_MSG_CHECKING([for int32_t in <machine/types.h>]) 117 AC_TRY_COMPILE([#include <machine/types.h>], 118 [int32_t bar;], 119 [AC_DEFINE(HAVE_INT32_T) 120 AC_MSG_RESULT(yes) 121 ], 122 AC_MSG_RESULT(no)) 123 AC_MSG_CHECKING([for int64_t in <machine/types.h>]) 124 AC_TRY_COMPILE([#include <machine/types.h>], 125 [int64_t bar;], 126 [AC_DEFINE(HAVE_INT64_T) 127 AC_MSG_RESULT(yes) 128 ], 129 AC_MSG_RESULT(no)) 130 AC_MSG_CHECKING([for uint8_t in <machine/types.h>]) 131 AC_TRY_COMPILE([#include <machine/types.h>], 132 [uint8_t bar;], 133 [AC_DEFINE(HAVE_UINT8_T) 134 AC_MSG_RESULT(yes) 135 ], 136 AC_MSG_RESULT(no)) 137 AC_MSG_CHECKING([for uint16_t in <machine/types.h>]) 138 AC_TRY_COMPILE([#include <machine/types.h>], 139 [uint16_t bar;], 140 [AC_DEFINE(HAVE_UINT16_T) 141 AC_MSG_RESULT(yes) 142 ], 143 AC_MSG_RESULT(no)) 144 AC_MSG_CHECKING([for uint32_t in <machine/types.h>]) 145 AC_TRY_COMPILE([#include <machine/types.h>], 146 [uint32_t bar;], 147 [AC_DEFINE(HAVE_UINT32_T) 148 AC_MSG_RESULT(yes) 149 ], 150 AC_MSG_RESULT(no)) 151 AC_MSG_CHECKING([for uint64_t in <machine/types.h>]) 152 AC_TRY_COMPILE([#include <machine/types.h>], 153 [uint64_t bar;], 154 [AC_DEFINE(HAVE_UINT64_T) 155 AC_MSG_RESULT(yes) 156 ], 157 AC_MSG_RESULT(no)) 158 ;; 159esac 160 161dnl --------------------------------------------------------------------------- 162dnl Check for <sys/types.h>, then check to see if it's got definitions 163dnl for the types in the ISO C working draft <inttypes.h> or includes 164dnl some other header file which defines them. 165dnl --------------------------------------------------------------------------- 166sys_types=no 167AC_CHECK_HEADERS(sys/types.h,[sys_types=yes]) 168 169case $sys_types in 170 yes) 171 AC_MSG_CHECKING([for int8_t in <sys/types.h>]) 172 AC_TRY_COMPILE([#include <sys/types.h>], 173 [int8_t bar;], 174 [AC_DEFINE(HAVE_INT8_T) 175 AC_MSG_RESULT(yes) 176 ], 177 AC_MSG_RESULT(no)) 178 AC_MSG_CHECKING([for int16_t in <sys/types.h>]) 179 AC_TRY_COMPILE([#include <sys/types.h>], 180 [int16_t bar;], 181 [AC_DEFINE(HAVE_INT16_T) 182 AC_MSG_RESULT(yes) 183 ], 184 AC_MSG_RESULT(no)) 185 AC_MSG_CHECKING([for int32_t in <sys/types.h>]) 186 AC_TRY_COMPILE([#include <sys/types.h>], 187 [int32_t bar;], 188 [AC_DEFINE(HAVE_INT32_T) 189 AC_MSG_RESULT(yes) 190 ], 191 AC_MSG_RESULT(no)) 192 AC_MSG_CHECKING([for int64_t in <sys/types.h>]) 193 AC_TRY_COMPILE([#include <sys/types.h>], 194 [int64_t bar;], 195 [AC_DEFINE(HAVE_INT64_T) 196 AC_MSG_RESULT(yes) 197 ], 198 AC_MSG_RESULT(no)) 199 AC_MSG_CHECKING([for uint8_t in <sys/types.h>]) 200 AC_TRY_COMPILE([#include <sys/types.h>], 201 [uint8_t bar;], 202 [AC_DEFINE(HAVE_UINT8_T) 203 AC_MSG_RESULT(yes) 204 ], 205 AC_MSG_RESULT(no)) 206 AC_MSG_CHECKING([for uint16_t in <sys/types.h>]) 207 AC_TRY_COMPILE([#include <sys/types.h>], 208 [uint16_t bar;], 209 [AC_DEFINE(HAVE_UINT16_T) 210 AC_MSG_RESULT(yes) 211 ], 212 AC_MSG_RESULT(no)) 213 AC_MSG_CHECKING([for uint32_t in <sys/types.h>]) 214 AC_TRY_COMPILE([#include <sys/types.h>], 215 [uint32_t bar;], 216 [AC_DEFINE(HAVE_UINT32_T) 217 AC_MSG_RESULT(yes) 218 ], 219 AC_MSG_RESULT(no)) 220 AC_MSG_CHECKING([for uint64_t in <sys/types.h>]) 221 AC_TRY_COMPILE([#include <sys/types.h>], 222 [uint64_t bar;], 223 [AC_DEFINE(HAVE_UINT64_T) 224 AC_MSG_RESULT(yes) 225 ], 226 AC_MSG_RESULT(no)) 227 ;; 228esac 229 230AC_CHECK_SIZEOF(unsigned short,2) 231AC_CHECK_SIZEOF(short,2) 232AC_CHECK_SIZEOF(unsigned int,4) 233AC_CHECK_SIZEOF(int,4) 234AC_CHECK_SIZEOF(unsigned long,4) 235AC_CHECK_SIZEOF(long,4) 236AC_CHECK_SIZEOF(unsigned long long,8) 237AC_CHECK_SIZEOF(long long,8) 238 239AC_C_BIGENDIAN 240 241AC_TRY_CPP([#include <fstream>],AC_DEFINE(HAVE_FSTREAM)) 242AC_TRY_CPP([#include <iostream>],AC_DEFINE(HAVE_IOSTREAM)) 243AC_TRY_CPP([#include <iomanip>],AC_DEFINE(HAVE_IOMANIP)) 244AC_TRY_CPP([#include <sstream>],AC_DEFINE(HAVE_SSTREAM)) 245AC_TRY_CPP([#include <strstream>],AC_DEFINE(HAVE_STRSTREAM)) 246 247AC_CHECK_LIB(nsl, inet_ntoa) 248AC_CHECK_LIB(socket, socket) 249AC_CHECK_LIB(rpc, xdr_float) 250AC_CHECK_LIB(rpcsvc, xdr_float) 251 252dnl ### Read some useful macros. 253 254builtin(include, ./xrt.m4) dnl check for XRT libraries 255builtin(include, ./dwm.m4) dnl 256 257AC_CHECK_LIB(fl,yywrap, 258 [flexdirguess=system], 259 [flexguess=`which flex` 260 flexdirguess=`echo $flexguess | awk -F/ '{for (i = 2; i < NF-1; i++) {printf "/%s",$i;} printf "\n";}'`]) 261DWM_PREREQ_PATH(flexdir,$flexdirguess,[flex directory]) 262 263case $flexdirguess in 264 system) 265 FLEXINC="" 266 FLEXLIB="-lfl" 267 ;; 268 *) 269 FLEXINC="-I ${flexdir}/include" 270 FLEXLIB="-L ${flexdir}/lib -lfl" 271 ;; 272esac 273 274AC_SUBST(FLEXINC) 275AC_SUBST(FLEXLIB) 276 277dnl DWM_PREREQ_PATH(krb4,/usr/kerberos,[Kerberos 4 top-level directory]) 278DWM_PREREQ_PATH(XINCDIR,$x_includes,[X11 include directory]) 279DWM_PREREQ_PATH(XLIBDIR,$x_libraries,[X11 library directory]) 280DWM_PREREQ_PATH(MOTIFINCDIR,/usr/include) 281DWM_PREREQ_PATH(MOTIFLIBDIR,/usr/lib) 282DWM_PREREQ_PATH(artspptop,`pwd`,[arts++ top-level source directory]) 283DWM_PREREQ_PATH(docurl,/caida/powertools/arts,[top-level documentation URL]) 284 285dnl ### set defaults for paths I'll use if user didn't specify them. 286 287DWM_PRESET_PATH(includedir,$prefix/include) 288DWM_PRESET_PATH(libdir,$prefix/lib) 289DWM_PRESET_PATH(bindir,$prefix/bin) 290DWM_PRESET_PATH(mandir,$prefix/man) 291 292DWM_DISABLE(debug,[disable debugging]) 293case $debug in 294 no) 295 CXXFLAGS="${CXXFLAGS} -DNDEBUG" 296 ;; 297 yes) 298 ;; 299esac 300 301OSNAME=`echo ${host_cpu}-${host_os} | sed 's/\//\_/g'` 302dnl OSNAME=`uname | sed 's/\//\_/g'` 303AC_SUBST(OSNAME) 304 305echo "OSNAME set to $OSNAME" 306dnl OSRELEASE=`uname -r | sed 's/\//\_/g'` 307dnl AC_SUBST(OSRELEASE) 308dnl echo "OSRELEASE set to $OSRELEASE" 309 310case $host_os in 311 bsdi*) 312 TAR="tar" 313 ;; 314 freebsd2*) 315 DWM_XDR_DESTROY_MACRO_DONT_PASS_POINTER() 316 TAR="/usr/bin/tar -P" 317 ;; 318 freebsd3*) 319 TAR="/usr/bin/tar -P" 320 ;; 321 linux*) 322 TAR="/bin/tar -P" 323 ;; 324 solaris*) 325 DWM_PREREQ_PATH(MOTIFINCDIR,/usr/dt/include) 326 DWM_PREREQ_PATH(MOTIFLIBDIR,/usr/dt/lib) 327 X_EXTRA_LIBS="-lICE -lSM" 328 TAR="/usr/bin/tar" 329 ;; 330 sunos*) 331 dnl this is a guess, I don't have a sunos 4.x machine 332 DWM_PREREQ_PATH(MOTIFINCDIR,/usr/dt/include) 333 DWM_PREREQ_PATH(MOTIFLIBDIR,/usr/dt/lib) 334 X_EXTRA_LIBS="-lICE -lSM" 335 TAR="/usr/bin/tar" 336 ;; 337 *) 338 TAR="tar" 339 ;; 340esac 341 342AC_SUBST(TAR) 343 344DWM_SET_VERSION(PKG_VERSION,$Name: arts++-1-1-a13 $,[arts++-1-1-a12]) 345 346dnl C_R_A is the 'Current', 'Revision', 'Age' triplet for shared 347dnl library versioning using libtool. Here are a set of rules 348dnl in updating library version information: 349dnl 350dnl 1. Start with version information of `0:0:0' for each libtool 351dnl library. 352dnl 353dnl 2. Update the version information only immediately before a 354dnl public release. More frequent updates are unnecessary, and 355dnl only guarantee that the current interface number gets larger 356dnl faster. 357dnl 358dnl 3. If the arts++ library source code has changed at all since 359dnl the last update, then increment REVISION (`C:R:A' becomes 360dnl `C:r+1:A'). 361dnl 362dnl 4. If any interfaces have been added, removed, or changed since 363dnl the last update, increment CURRENT, and set REVISION to 0. 364dnl 365dnl 5. If any interfaces have been added since the last public 366dnl release, then increment AGE. 367dnl 368dnl 6. If any interfaces have been removed since the last public 369dnl release, then set AGE to 0. 370 371DWM_SET_VERSION(C_R_A,[0:0:0],[0:0:0]) 372 373DWM_LIST_PREREQ_PATHS() 374DWM_LIST_INSTALL_PATHS() 375 376AC_CONFIG_FILES(Makefile \ 377 classes/src/Makefile \ 378 classes/include/Makefile \ 379 doc/Makefile \ 380 doc/libArts/Makefile \ 381 doc/installHtml.sh \ 382 doc/libArts/installHtml.sh \ 383 apps/artsagg/Makefile \ 384 apps/artsases/Makefile \ 385 apps/artsasagg/Makefile \ 386 apps/artsdump/Makefile \ 387 apps/artsintfms/Makefile \ 388 apps/artsintfmagg/Makefile \ 389 apps/artsnets/Makefile \ 390 apps/artsnexthops/Makefile \ 391 apps/artsnexthopagg/Makefile \ 392 apps/artsnetagg/Makefile \ 393 apps/artsportagg/Makefile \ 394 apps/artsportmagg/Makefile \ 395 apps/artsportms/Makefile \ 396 apps/artsports/Makefile \ 397 apps/artsprotoagg/Makefile \ 398 apps/artsprotos/Makefile \ 399 apps/artstoc/Makefile \ 400 apps/artstos/Makefile \ 401 apps/artstrunc/Makefile) 402AC_OUTPUT 403 404