dnl $Id$ AC_INIT AM_INIT_AUTOMAKE(gpsd, 2.38dev) dnl AC_PREFIX_PROGRAM(gcc) AM_CONFIG_HEADER(gpsd_config.h) AC_LANG([C]) AC_ARG_ENABLE(python, AC_HELP_STRING([--disable-python], [disable python scripts and library bindings]), [try_python="$enableval"], [try_python="yes"]) ac_python="no" if test x"$try_python" = xyes ; then AM_PATH_PYTHON ac_python="yes" fi AM_CONDITIONAL([HAVE_PYTHON], [test x"$ac_python" = xyes]) AC_PROG_LN_S AC_PROG_MAKE_SET AC_PROG_INSTALL AC_PROG_LIBTOOL AC_PROG_CXX AC_C_BIGENDIAN type_error="no" AC_CHECK_SIZEOF([char]) AC_CHECK_SIZEOF([short]) AC_CHECK_SIZEOF([int]) AC_CHECK_SIZEOF([long]) AC_CHECK_SIZEOF([long long]) AC_CHECK_SIZEOF([float]) AC_CHECK_SIZEOF([double]) if test x"$ac_cv_sizeof_char" != "x1" ; then AC_MSG_WARN(gpsd requires sizeof(char)==1); type_error="yes" fi if test x"$ac_cv_sizeof_short" != "x2" ; then AC_MSG_WARN(gpsd requires sizeof(short)==2); type_error="yes" fi if test x"$ac_cv_sizeof_int" != "x4" ; then AC_MSG_WARN(gpsd requires sizeof(int)==4); type_error="yes" fi if test x"$ac_cv_sizeof_long_long" != "x8" ; then AC_MSG_WARN(gpsd requires sizeof(long long)==8); type_error="yes" fi if test x"$ac_cv_sizeof_float" != "x4" ; then AC_MSG_WARN(gpsd requires sizeof(float)==4); type_error="yes" fi if test x"$ac_cv_sizeof_double" != "x8" ; then AC_MSG_WARN(gpsd requires sizeof(double)==8); type_error="yes" fi if test x"$type_error" = "xyes" ; then AC_ERROR(Your system does not provide all required data types); fi AC_FUNC_ALLOCA AC_STDC_HEADERS AC_C_CONST AC_MSG_CHECKING([for properly working floating point implementation]) if test "x$build" = "x$host"; then if eval "$CC $CFLAGS -o floattest ${srcdir}/floattest.c"; then if ./floattest > /dev/null; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_WARN([We strongly recommend you manually examine the floattest results]) fi else AC_MSG_RESULT([failure compiling floattest]) fi else AC_MSG_RESULT([skipped test (cross-compiling)]) AC_MSG_WARN([We are cross-compiling, and thus cannot run the floating point test now. We strongly recommend running floattest on the target platform.]) fi if eval "test x$GCC = xyes"; then CFLAGS="$CFLAGS -Wall -Wcast-align -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type -D_GNU_SOURCE" dnl -Wcast-qual -W fi AC_CHECK_HEADERS(sys/termios.h sys/select.h sys/time.h sys/modem.h sys/ipc.h sys/shm.h sys/socket.h) AC_CHECK_HEADERS(arpa/inet.h netinet/in_systm.h netinet/in.h netinet/tcp.h) AC_CHECK_HEADERS([netinet/ip.h], [], [], [[#if HAVE_NETINET_IN_SYSTM_H && HAVE_NETINET_IN_H #include netinet/ip.h #endif ]]) AC_CHECK_HEADERS(termios.h strings.h ncurses.h getopt.h netdb.h) AC_CHECK_FUNCS(round, roundf) AC_CHECK_FUNCS(strlcpy) AC_CHECK_FUNCS(strlcat) AC_CHECK_FUNCS(strtonum) AC_CHECK_FUNCS(setlocale) AC_HEADER_TIME AC_STRUCT_TIMEZONE AC_CACHE_CHECK(for timezone variable, ac_cv_var_timezone, AC_TRY_COMPILE([ #include ], [ timezone = 1; ], ac_cv_var_timezone=yes, ac_cv_var_timezone=no)) if test $ac_cv_var_timezone = yes; then AC_DEFINE(HAVE_TIMEZONE, [], [Have timezone variable]) else AC_CACHE_CHECK(for tm_gmtoff in struct tm, ac_cv_struct_tm_gmtoff, AC_TRY_COMPILE([ #include ], [ struct tm tm; tm.tm_gmtoff = 1; ], ac_cv_struct_tm_gmtoff=yes, ac_cv_struct_tm_gmtoff=no )) if test $ac_cv_struct_tm_gmtoff = yes; then AC_DEFINE(HAVE_TM_GMTOFF, [], [struct tm has tm_gmtoff]) else AC_ERROR(unable to find a way to determine timezone) fi fi AC_CACHE_CHECK(for daylight external, mb_cv_var_daylight, [ AC_TRY_LINK([#include ], [return (int)daylight;], mb_cv_var_daylight=yes, mb_cv_var_daylight=no) ]) if test $mb_cv_var_daylight = yes; then AC_DEFINE([HAVE_DAYLIGHT], 1, [Define if you have the external 'daylight' variable.]) fi AC_CHECK_LIB(nsl, gethostbyname, LIBNSL="-lnsl") AC_SUBST(LIBNSL) AC_CHECK_LIB(socket, socket, LIBSOCKET="-lsocket") AC_SUBST(LIBSOCKET) AC_CHECK_LIB(m, rint, LIBM="-lm") AC_SUBST(LIBM) AC_CHECK_LIB(c, open, LIBC="-lc") AC_SUBST(LIBC) AC_CHECK_LIB(pthread, pthread_setcancelstate, [LIBPTHREAD="-lpthread" AC_DEFINE([HAVE_LIBPTHREAD], [], [pthread libraries are present])]) AC_SUBST(LIBPTHREAD) AH_VERBATIM([_GNU_SOURCE], [/* Macro for declaring function arguments unused. */ #if defined(__GNUC__) # define UNUSED __attribute__((unused)) /* Flag variable as unused */ #else /* not __GNUC__ */ # define UNUSED #endif /* Some libc's don't have strlcat/strlcpy. Local copies are provided */ #ifndef HAVE_STRLCAT size_t strlcat(/*@out@*/char *dst, /*@in@*/const char *src, size_t size); #endif #ifndef HAVE_STRLCPY size_t strlcpy(/*@out@*/char *dst, /*@in@*/const char *src, size_t size); #endif]) dnl Check for X libraries ac_x="no" if test x"$with_x" != "xno" -a x"$have_x" != "xdisabled" then AC_CHECK_HEADERS(X11/xpm.h xpm.h) if test x"$ac_cv_header_X11_xpm_h" = "xno" && test x"$ac_cv_header_xpm_h" = "xno"; then AC_MSG_WARN([xpm.h problem - xgps won't be built.]) fi AC_PATH_XTRA if test x"$ac_cv_have_x" = "xno"; then AC_MSG_WARN([X problem - xgps won't be built.]) fi LIBS="$LIBS $X_EXTRA_LIBS" CFLAGS="$CFLAGS $X_CFLAGS" CPPFLAGS="$CPPFLAGS $X_CFLAGS" LDFLAGS="$LDFLAGS $X_LIBS" AC_SUBST(X_LIBS) AC_SUBST(X11_LIBS) AC_SUBST(X_PRE_LIBS) dnl Check for some auxiliary X libraries we'll need AC_CHECK_LIB(Xt, XtToolkitInitialize, XT_LIBS="-lXt",, ${X_PRE_LIBS} ${X11_LIBS}) AC_SUBST(XT_LIBS) if test x"$ac_cv_lib_Xt_XtToolkitInitialize" = "xno"; then AC_MSG_WARN([libXt problem - xgps won't be built.]) fi AC_CHECK_HEADER([X11/Xaw/Label.h],, motif_includes="no") AC_CHECK_LIB(Xaw, XawInitializeWidgetSet, XAW_LIBS="-lXaw",, ${X_PRE_LIBS} ${X11_LIBS}) AC_SUBST(XAW_LIBS) if test x"$ac_cv_lib_Xaw_XawInitializeWidgetSet" = "xno"; then AC_MSG_WARN([libXaw problem - xgps won't be built.]) fi AC_CHECK_LIB(Xext, XShapeQueryVersion, XEXT_LIBS="-lXext",, ${X_PRE_LIBS} ${X11_LIBS}) AC_SUBST(XEXT_LIBS) if test x"$ac_cv_lib_Xext_XShapeQueryVersion" = "xno"; then AC_MSG_WARN([libXext problem - xgps won't be built.]) fi AC_CHECK_LIB(Xpm, XpmCreatePixmapFromXpmImage, XPM_LIBS="-lXpm" AC_DEFINE([HAVE_XPM],1,[Xpm available]),,${X_PRE_LIBS} ${X11_LIBS}) AC_SUBST(XPM_LIBS) if test x"$ac_cv_lib_Xpm_XpmCreatePixmapFromXpmImage" = "xno"; then AC_MSG_WARN([libXpm problem - xgps won't be built.]) fi dnl Check for Motif widget libraries XM_LIBS="" XP_LIBS="" if test "$motif_includes" != "no" -a "$motif_libraries" != "no" then dnl Motif 2.1 wants '-lXp' (X11R6.3 print server) AC_CHECK_LIB(Xp, XpSelectInput, XP_LIBS="-lXp" AC_DEFINE([HAVE_XP],1,[Xp available]),, ${X_PRE_LIBS} ${XPM_LIBS} ${XEXT_LIBS} ${XT_LIBS} ${XEXT_LIBS} ${X11_LIBS} ${LIBGEN}) dnl AC_CHECK_LIB(Xm, XmInternAtom, XM_LIBS="-lXm" AC_DEFINE([HAVE_MOTIF],1,[Motif available]),, ${X_PRE_LIBS} ${XP_LIBS} ${XPM_LIBS} ${XEXT_LIBS} ${XT_LIBS} ${XEXT_LIBS} ${X11_LIBS} ${LIBGEN}) fi AC_SUBST(XP_LIBS) AC_SUBST(XM_LIBS) AM_CONDITIONAL([HAVE_MOTIF], [test "$XM_LIBS" != "" -a "$motif_includes" != "no"]) ac_x="yes" else dnl X11 disabled AM_CONDITIONAL([HAVE_MOTIF], [test "motif" = "no"]) AC_MSG_WARN([Not including X11 support]) fi dnl End of X11 checks AC_CHECK_HEADER(ncurses.h, ac_ncurses='yes', ac_ncurses='no') AM_CONDITIONAL([HAVE_NCURSES], [test x"$ac_ncurses" = "xyes"]) AC_CHECK_LIB(ncurses, initscr, ac_ncurses_lib='yes', ac_ncurses_lib='no') if test x"$ac_ncurses_lib" = "xyes" -a x"$ac_ncurses" = "xno" ; then AC_MSG_ERROR(I see an ncurses library but no header; you should install the development package); fi dnl check for NMEA support AC_ARG_ENABLE(nmea, AC_HELP_STRING([--disable-nmea], [disable NMEA support]), [ac_nmea=$enableval], [ac_nmea=yes]) AC_MSG_CHECKING([for NMEA support]) if test x"$ac_nmea" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([NMEA_ENABLE], 1, [NMEA chipset support]) else AC_MSG_RESULT([no]) fi dnl check for SiRF support AC_ARG_ENABLE(sirf, AC_HELP_STRING([--disable-sirf], [disable SiRF chipset support]), [ac_sirf=$enableval], [ac_sirf=yes]) AC_MSG_CHECKING([for SiRF support]) if test x"$ac_sirf" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([SIRF_ENABLE], 1, [SiRF chipset support]) else AC_MSG_RESULT([no]) fi dnl check for Trimble TSIP support AC_ARG_ENABLE(tsip, AC_HELP_STRING([--disable-tsip], [disable Trimble TSIP support]), [ac_tsip=$enableval], [ac_tsip=yes]) AC_MSG_CHECKING([for Trimble TSIP support]) if test x"$ac_tsip" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([TSIP_ENABLE], 1, [Trimble TSIP support]) else AC_MSG_RESULT([no]) fi dnl check for FV-18 support AC_ARG_ENABLE(fv18, AC_HELP_STRING([--disable-fv18], [disable San Jose Navigation FV-18 support]), [ac_fv18=$enableval], [ac_fv18=yes]) AC_MSG_CHECKING([for FV-18 support]) if test x"$ac_fv18" = "xyes"; then ac_nmea=yes AC_MSG_RESULT([yes]) AC_DEFINE([FV18_ENABLE], 1, [San Jose Navigation FV-18 support]) AC_DEFINE([NMEA_ENABLE], 1, [San Jose Navigation FV-18 requires NMEA support]) else AC_MSG_RESULT([no]) fi dnl check for Tripmate support AC_ARG_ENABLE(tripmate, AC_HELP_STRING([--disable-tripmate], [disable DeLorme TripMate support]), [ac_tripmate=$enableval], [ac_tripmate=yes]) AC_MSG_CHECKING([for Tripmate support]) if test x"$ac_tripmate" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([TRIPMATE_ENABLE], 1, [DeLorme TripMate support]) else AC_MSG_RESULT([no]) fi dnl check for EarthMate support AC_ARG_ENABLE(earthmate, AC_HELP_STRING([--disable-earthmate], [disable DeLorme EarthMate Zodiac support]), [ac_earthmate=$enableval], [ac_earthmate=yes]) AC_MSG_CHECKING([for EarthMate support]) if test x"$ac_earthmate" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([EARTHMATE_ENABLE], 1, [DeLorme EarthMate Zodiac support]) else AC_MSG_RESULT([no]) fi dnl check for iTrax support AC_ARG_ENABLE(itrax, AC_HELP_STRING([--disable-itrax], [disable iTrax hardware support]), [ac_itrax=$enableval], [ac_itrax=yes]) AC_MSG_CHECKING([for iTrax support]) if test x"$ac_itrax" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([ITRAX_ENABLE], 1, [iTrax chipset support]) else AC_MSG_RESULT([no]) fi dnl check for Ashtech support AC_ARG_ENABLE(ashtech, AC_HELP_STRING([--disable-ashtech], [disable Ashtech support]), [ac_ashtech=$enableval], [ac_ashtech=yes]) AC_MSG_CHECKING([for Ashtech support]) if test x"$ac_ashtech" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([ASHTECH_ENABLE], 1, [Ashtech chipset support]) else AC_MSG_RESULT([no]) fi dnl check for Navcom support AC_ARG_ENABLE(navcom, AC_HELP_STRING([--disable-navcom], [disable Navcom support]), [ac_navcom=$enableval], [ac_navcom=yes]) AC_MSG_CHECKING([for Navcom support]) if test x"$ac_navcom" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([NAVCOM_ENABLE], 1, [Navcom support]) else AC_MSG_RESULT([no]) fi dnl check for Garmin support AC_ARG_ENABLE(garmin, AC_HELP_STRING([--disable-garmin], [disable Garmin kernel driver support]), [ac_garmin=$enableval], [ac_garmin=yes]) AC_MSG_CHECKING([for Garmin support]) if test x"$ac_garmin" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([GARMIN_ENABLE], 1, [Garmin support]) else AC_MSG_RESULT([no]) fi dnl check for Garmin Simple Text support AC_ARG_ENABLE(garmintxt, AC_HELP_STRING([--enable-garmintxt], [enable Garmin Simple Text support]), [ac_garmintxt=$enableval], [ac_garmintxt=no]) AC_MSG_CHECKING([for Garmin Simple Text support]) if test x"$ac_garmintxt" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([GARMINTXT_ENABLE], 1, [Garmin Simple Text support]) else AC_MSG_RESULT([no]) fi dnl check for True North support AC_ARG_ENABLE(tnt, AC_HELP_STRING([--enable-tnt], [enable True North Technologies support]), [ac_tnt=$enableval], [ac_tnt=no]) AC_MSG_CHECKING([for True North support]) if test x"$ac_tnt" = "xyes"; then ac_nmea=yes AC_MSG_RESULT([yes]) AC_DEFINE([TNT_ENABLE], 1, [True North Technologies support]) AC_DEFINE([NMEA_ENABLE], 1, [True North requires NMEA support]) else AC_MSG_RESULT([no]) fi dnl check for UBX support AC_ARG_ENABLE(ubx, AC_HELP_STRING([--disable-ubx], [disable UBX Protocol support]), [ac_ubx=$enableval], [ac_ubx=yes]) AC_MSG_CHECKING([for UBX support]) if test x"$ac_ubx" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([UBX_ENABLE], 1, [UBX Protocol support]) else AC_MSG_RESULT([no]) fi dnl check for EverMore support AC_ARG_ENABLE(evermore, AC_HELP_STRING([--disable-evermore], [disable EverMore binary support]), [ac_evermore=$enableval], [ac_evermore=yes]) AC_MSG_CHECKING([for EverMore support]) if test x"$ac_evermore" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([EVERMORE_ENABLE], 1, [EverMore binary support]) else AC_MSG_RESULT([no]) fi dnl check for GPSClock support AC_ARG_ENABLE(gpsclock, AC_HELP_STRING([--disable-gpsclock], [disable GPSClock support]), [ac_gpsclock=$enableval], [ac_gpsclock=yes]) AC_MSG_CHECKING([for GPSClock support]) if test x"$ac_gpsclock" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([GPSCLOCK_ENABLE], 1, [GPSclock chipset support]) else AC_MSG_RESULT([no]) fi dnl check for RTCM104V2 support AC_ARG_ENABLE(rtcm104v2, AC_HELP_STRING([--disable-rtcm104v2], [disable rtcm104v2 support]), [ac_rtcm104v2=$enableval], [ac_rtcm104v2=yes]) AC_MSG_CHECKING([for rtcm104v2 support]) if test x"$ac_earthmate" = "xno" -a x"$ac_evermore" = "xno" -a x"$ac_garmin" = "xno" -a x"$ac_itrax" = "xno" -a x"$ac_sirf" = "xno" -a x"$ac_tsip" = "xno" -a x"$ac_navcom" = "xno"; then ac_rtcm104v2=no fi if test x"$ac_rtcm104v2" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([RTCM104V2_ENABLE], 1, [rtcm104v2 binary support]) else AC_MSG_RESULT([no]) fi AM_CONDITIONAL([HAVE_RTCM104V2], [test "$ac_rtcm104v2" = "yes"]) dnl check for RTCM104V3 support AC_ARG_ENABLE(rtcm104v2, AC_HELP_STRING([--disable-rtcm104v3], [disable rtcm104v3 support]), [ac_rtcm104v3=$enableval], [ac_rtcm104v3=yes]) AC_MSG_CHECKING([for rtcm104v3 support]) if test x"$ac_earthmate" = "xno" -a x"$ac_evermore" = "xno" -a x"$ac_garmin" = "xno" -a x"$ac_itrax" = "xno" -a x"$ac_sirf" = "xno" -a x"$ac_tsip" = "xno" -a x"$ac_navcom" = "xno"; then ac_rtcm104v3=no fi if test x"$ac_rtcm104v3" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([RTCM104V3_ENABLE], 1, [rtcm104v3 binary support]) else AC_MSG_RESULT([no]) fi AM_CONDITIONAL([HAVE_RTCM104V3], [test "$ac_rtcm104v3" = "yes"]) dnl check for NTRIP support AC_ARG_ENABLE(ntrip, AC_HELP_STRING([--disable-ntrip], [disable NTRIP support]), [ac_ntrip=$enableval], [ac_ntrip=yes]) AC_MSG_CHECKING([for NTRIP support]) if test x"$ac_ntrip" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([NTRIP_ENABLE], 1, [NTRIP support]) else AC_MSG_RESULT([no]) fi AM_CONDITIONAL([HAVE_NTRIP], [test "$ac_ntrip" = "yes"]) dnl check for profiling support AC_ARG_ENABLE(profiling, AC_HELP_STRING([--enable-profiling], [enable profiling support]), [ac_profiling=$enableval], [ac_profiling=no]) AC_MSG_CHECKING([for profiling support]) if test x"$ac_profiling" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([PROFILING], 1, [profiling support]) else AC_MSG_RESULT([no]) fi dnl check for NTP time hinting support AC_ARG_ENABLE(ntpshm, AC_HELP_STRING([--disable-ntpshm], [disable NTP time hinting support]), [ac_ntpshm=$enableval], [ac_ntpshm=yes]) AC_MSG_CHECKING([for NTP time hinting support]) if test x"$ac_ntpshm" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([NTPSHM_ENABLE], 1, [NTP time hinting support]) else AC_MSG_RESULT([no]) fi dnl check for PPS time syncing support AC_ARG_ENABLE(pps, AC_HELP_STRING([--disable-pps], [disable PPS time syncing support]), [ac_pps=$enableval], [ac_pps=yes]) AC_MSG_CHECKING([for PPS time syncing support]) if test x"$ac_pps" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([PPS_ENABLE], 1, [PPS time syncing support]) else AC_MSG_RESULT([no]) fi dnl check for PPS input on CTS line AC_ARG_ENABLE(pps-on-cts, AC_HELP_STRING([--enable-pps-on-cts], [Enable PPS pulse on CTS rather than DCD]), [ac_ppsoncts=$enableval], [ac_ppsoncts=no]) AC_MSG_CHECKING([for PPS pulse on CTS rather than DCD]) if test x"$ac_ppsoncts" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([PPS_ON_CTS], 1, [PPS on CTS rather than DCD]) else AC_MSG_RESULT([no]) fi dnl check for privilege revokation user at compile-time AC_ARG_ENABLE(gpsd-user, AC_HELP_STRING([--enable-gpsd-user=username], [GPSD privilege revokation user]), [ac_user=$enableval], [ac_user=nobody]) AC_MSG_CHECKING([privilege revokation user]) if test x"$ac_user" != "xnobody"; then AC_MSG_RESULT([$ac_user]) AC_DEFINE_UNQUOTED([GPSD_USER], "$ac_user", [GPSD privilege revokation user]) else AC_MSG_RESULT([nobody]) fi dnl check for port speed fixed at compile-time AC_ARG_ENABLE(fixed-port-speed, AC_HELP_STRING([--enable-fixed-port-speed=nnn], [compile with fixed serial port speed]), [ac_baud=$enableval], [ac_baud=no]) AC_MSG_CHECKING([for fixed port speed]) if test x"$ac_baud" != "xno"; then AC_MSG_RESULT([$ac_baud]) AC_DEFINE_UNQUOTED([FIXED_PORT_SPEED], $ac_baud, [Fixed port speed]) FIXED_PORT_SPEED="-DSPEEDFLAGS=$ac_baud" else AC_MSG_RESULT([no]) fi dnl Manually configure DBUS until we figure out a dnl distro-independent was to check for both libraries and headers AC_ARG_ENABLE(dbus, AC_HELP_STRING([--enable-dbus], [enable DBUS support]), [ac_dbus=$enableval], [ac_dbus=no]) AC_MSG_CHECKING([for DBUS support]) if test x"$ac_dbus" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([DBUS_ENABLE], 1, [DBUS support]) # Older versions of autotools barf and die on this. #PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.23.4 ) DBUS_CFLAGS=`pkg-config --cflags dbus-glib-1` DBUS_LIBS=`pkg-config --libs dbus-1` AC_SUBST(DBUS_CFLAGS) AC_SUBST(DBUS_LIBS) #PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.22 ) DBUS_GLIB_LIBS=`pkg-config --libs dbus-glib-1` AC_SUBST(DBUS_GLIB_CFLAGS) AC_SUBST(DBUS_GLIB_LIBS) else AC_MSG_RESULT([no]) fi dnl check for limited maximum clients AC_ARG_ENABLE(max-clients, AC_HELP_STRING([--enable-max-clients=nnn], [compile with limited maximum clients]), [ac_maxclients=$enableval], [ac_maxclients=no]) AC_MSG_CHECKING([for limited max clients]) if test x"$ac_maxclients" != "xno"; then AC_MSG_RESULT([$ac_maxclients]) AC_DEFINE_UNQUOTED([LIMITED_MAX_CLIENTS], $ac_maxclients, [Limited maximum clients]) LIMITED_MAX_CLIENTS="-DLIMITED_MAX_CLIENTS=$ac_maxclients" else AC_MSG_RESULT([no]) fi dnl check for max number of GPS devices AC_ARG_ENABLE(max-devices, AC_HELP_STRING([--enable-max-devices=nnn], [compile with maximum allowed devices]), [ac_maxdevices=$enableval], [ac_maxdevices=no]) AC_MSG_CHECKING([for max devices]) if test x"$ac_maxdevices" != "xno"; then AC_MSG_RESULT([$ac_maxdevices]) AC_DEFINE_UNQUOTED([LIMITED_MAX_DEVICES], $ac_maxdevices, [Maximum gps devices]) LIMITED_MAX_DEVICES="-DLIMITED_MAX_DEVICES=$ac_maxdevices" else AC_MSG_RESULT([no]) fi dnl allow gpsd to reconfigure gps receiver AC_ARG_ENABLE(reconfigure, AC_HELP_STRING([--disable-reconfigure], [do not allow gpsd to change device settings]), [ac_reconfigure=$enableval], [ac_reconfigure=yes]) AC_MSG_CHECKING([if device reconfiguration is allowed]) if test x"$ac_reconfigure" != "xno"; then AC_MSG_RESULT([$ac_reconfigure]) AC_DEFINE([ALLOW_RECONFIGURE], 1, [Allow gpsd to reconfigure device]) else AC_MSG_RESULT([no]) fi dnl Automatic check for DBUS. dnl It's broken -- leads to bad compiles on systems with DBUS libraies dnl but no DBUS headers. dnl ac_dbus=no dnl AC_CHECK_LIB(dbus-1, dbus_bus_get, [true], [false]) # do not update $LIBS dnl if test x"yes" = x"$ac_cv_lib_dbus_1_dbus_bus_get" ; then dnl # Found dbus library, check for required versions and enable it dnl dnl AC_MSG_CHECKING([for DBUS support]) dnl PKG_CHECK_MODULES(DBUS, dbus-1 >= 0.23.4, dnl [ac_dbus=yes],[ac_dbus=no]) dnl AC_MSG_RESULT([$ac_dbus]) dnl AC_SUBST(DBUS_CFLAGS) dnl AC_SUBST(DBUS_LIBS) dnl dnl if test x"ac_dbus" = x"yes" ; then dnl AC_DEFINE([DBUS_ENABLE],1,[Found DBUS libraries]) dnl fi dnl dnl # Check for glib and dbus-glib, used by gpxlogger dnl PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.2.0 ) dnl AC_SUBST(GLIB_CFLAGS) dnl AC_SUBST(GLIB_LIBS) dnl dnl PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= 0.22) dnl AC_SUBST(DBUS_GLIB_CFLAGS) dnl AC_SUBST(DBUS_GLIB_LIBS) dnl fi AM_CONDITIONAL([HAVE_DBUS], [test x"$ac_dbus" = x"yes"]) dnl mute logging functions? AC_ARG_ENABLE(squelch, AC_HELP_STRING([--enable-squelch], [squelch gpsd_report and gpsd_hexdump to save cpu]), [ac_squelch=$enableval], [ac_squelch=no]) AC_MSG_CHECKING([for disabled logging]) if test x"$ac_squelch" = "xyes"; then AC_MSG_RESULT([yes]) AC_DEFINE([SQUELCH_ENABLE], 1, [Squelch logging and hexdumps]) else AC_MSG_RESULT([no]) fi dnl Test for XSLT processor (xsltproc or xmlto) AC_CHECK_PROG(WITH_XSLTPROC,[xsltproc],[yes],[no]) MANGENERATOR= MANTARGET= MANFLAGS= if test "x$WITH_XSLTPROC" = "xyes"; then AC_MSG_CHECKING([whether xsltproc knows about docbook xsl]) DOCBOOK_URI='http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl' cat >conftest.xml <<_EOF foo 1 9 Aug 2004 foo check man page generation from docbook source _EOF if xsltproc --nonet --noout "$DOCBOOK_URI" conftest.xml >/dev/null 2>&1; then MANGENERATOR=xsltproc MANTARGET="$DOCBOOK_URI" MANFLAGS="--nonet" AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi rm -f conftest.xml foo.1 fi if test x"$MANGENERATOR" = x; then AC_CHECK_PROG(WITH_XMLTO,[xmlto],[yes],[no]) if test "x$WITH_XMLTO" = "xyes"; then MANGENERATOR=xmlto MANTARGET=man MANFLAGS= else AC_MSG_WARN([Neither xsltproc nor xmlto works: I will not build man pages.]) AC_MSG_WARN([To build man pages, install xsltproc/xsltlib or xmlto and run autogen.sh again.]) fi fi AM_CONDITIONAL([HAVE_XSLT_PROCESSOR], [test x"$MANGENERATOR" != x]) AC_SUBST(MANGENERATOR) AC_SUBST(MANTARGET) AC_SUBST(MANFLAGS) dnl Output the configuration summary echo "" echo "==========================================" echo "$PACKAGE $VERSION" echo "------------------------------------------" dnl When you add a protocol here, don't forget the null-set check below echo " Protocols" echo " ---------" echo "Ashtech : $ac_ashtech" echo "Earthmate : $ac_earthmate" echo "EverMore : $ac_evermore" echo "FV-18 : $ac_fv18" echo "Garmin : $ac_garmin" echo "Garmin Simple Text : $ac_garmintxt" echo "iTrax : $ac_itrax" echo "NMEA : $ac_nmea" echo "NTRIP : $ac_ntrip" echo "Navcom : $ac_navcom" echo "RTCM104V2 : $ac_rtcm104v2" echo "RTCM104V3 : $ac_rtcm104v3" echo "SiRF : $ac_sirf" echo "Trimble TSIP : $ac_tsip" echo "Tripmate : $ac_tripmate" echo "True North : $ac_tnt" echo "UBX : $ac_ubx" echo "GPSclock : $ac_gpsclock" dnl Below this line are non-protocol switches echo " Daemon Features" echo " ---------------" echo "NTP SHM : $ac_ntpshm" echo "NTP PPS : $ac_pps" echo -n "PPS input on : " ; case $ac_ppsoncts in yes) echo "CTS" ;; no) echo "DCD" ;; *) echo "Not defined" ;; esac echo "Fixed port speed : $ac_baud" echo "Priv-drop user : $ac_user" echo "Enable shared libraries : $enable_shared" echo "Enable DBUS support : $ac_dbus" echo "Enable X11 support : $ac_x" echo "Enable Python support : $ac_python" echo "Limited max clients : $ac_maxclients" echo "Limited max devices : $ac_maxdevices" echo "Allow device reconfig : $ac_reconfigure" echo "Squelch logging/hexdump : $ac_squelch" echo "Build ncurses programs : $ac_ncurses" echo "------------------------------------------" if test "xdummy" = "xdummy" -a \ x"$ac_earthmate" = "xno" -a \ x"$ac_evermore" = "xno" -a \ x"$ac_fv18" = "xno" -a \ x"$ac_garmin" = "xno" -a \ x"$ac_garmintxt" = "xno" -a \ x"$ac_itrax" = "xno" -a \ x"$ac_navcom" = "xno" -a \ x"$ac_nmea" = "xno" -a \ x"$ac_ntrip" = "xno" -a \ x"$ac_rtcm104v2" = "xno" -a \ x"$ac_sirf" = "xno" -a \ x"$ac_tnt" = "xno" -a \ x"$ac_tripmate" = "xno" -a \ x"$ac_tsip" = "xno" -a \ x"$ac_ubx" = "xno"; then AC_MSG_ERROR(Can't build gpsd with no protocols enabled) fi AC_OUTPUT(Makefile gpsd.spec libgps.pc libgpsd.pc) echo "Configure finished, type 'make' to build."