dnl Process this file with autoconf to produce a configure script. AC_INIT(src/wmnetload.c) AM_CONFIG_HEADER(config.h) dnl dnl WN_TYPE_ULONGLONG_T() dnl See if ulonglong_t is already defined on the system. dnl AC_DEFUN(WN_TYPE_ULONGLONG_T, [AC_CHECK_TYPE(ulonglong_t, unsigned long long)]) dnl dnl WN_HAVE_SOCKADDR_SA_LEN() dnl See if the system supports sockaddr's sa_len member dnl AC_DEFUN(WN_HAVE_SOCKADDR_SA_LEN, [AC_CACHE_CHECK([for sa_len in struct sockaddr], ac_cv_sockaddr_sa_len, [AC_TRY_COMPILE([#include #include ], [struct sockaddr s; s.sa_len;], ac_cv_sockaddr_sa_len=yes, ac_cv_sockaddr_sa_len=no)]) if test $ac_cv_sockaddr_sa_len = yes; then AC_DEFINE(HAVE_SOCKADDR_SA_LEN,, [Define if your system supports sockaddr's sa_len member.]) fi ]) dnl dnl WN_HAVE_IPV6() dnl See if the system "supports" IPv6 applications. dnl AC_DEFUN(WN_HAVE_IPV6, [AC_CACHE_CHECK([for IPv6 support], ac_cv_have_ipv6, [AC_TRY_COMPILE([#include #include ], [struct sockaddr_in6 s;], ac_cv_have_ipv6=yes, ac_cv_have_ipv6=no)]) if test $ac_cv_have_ipv6 = yes; then AC_DEFINE(HAVE_IPV6,, [Define if your system supports IPv6 applications.]) fi ]) dnl dnl WN_CHECK_LIB(NAME, FUNCTION, EXTRALIBS) dnl Just like AC_CHECK_LIB, except that it respects LIBRARY_SEARCH_PATH. dnl AC_DEFUN(WN_CHECK_LIB, [ LDFLAGS_old="$LDFLAGS" LDFLAGS="$LDFLAGS $LIBRARY_SEARCH_PATH" AC_CHECK_LIB([$1],[$2],yes=yes,no=no,[$3]) LDFLAGS="$LDFLAGS_old" ]) dnl dnl WN_CHECK_HEADER(NAME, FLAGS) dnl Just like AC_CHECK_HEADER, except that it respects HEADER_SEARCH_PATH dnl and it takes a cpp flags parameter. dnl AC_DEFUN(WN_CHECK_HEADER, [ CPPFLAGS_old="$CPPFLAGS" CPPFLAGS="$CPPFLAGS $HEADER_SEARCH_PATH $2" AC_CHECK_HEADER([$1]) CPPFLAGS="$CPPFLAGS_old" ]) AM_INIT_AUTOMAKE(wmnetload, "1.3") dnl Checks for programs. AC_PROG_CC AC_PROG_CPP AC_PROG_INSTALL dnl Checks for header files. AC_HEADER_STDC dnl Set the look. WN_LOOK=current AC_ARG_WITH(classic-look, [ --with-classic-look use \"classic\" wmnetload look], [WN_LOOK=classic]) AC_ARG_WITH(current-look, [ --with-current-look use \"current\" wmnetload look (default)], [WN_LOOK=current]) AC_SUBST(WN_LOOK) AC_DEFINE_UNQUOTED(WN_LOOK, $WN_LOOK, [Right now, no source code actually depends directly on this symbol, but having it forces wmnetload to recompile if the value of it changes, through the magic of config.h.]) dnl Specify paths to look for libraries and headers AC_ARG_WITH(libs-from, [ --with-libs-from linker library search path], [lib_search_path=" -L $withval $lib_search_path"]) AC_ARG_WITH(incs-from, [ --with-incs-from compiler header file search path], [inc_search_path=" -I $withval $inc_search_path"]) LIBRARY_SEARCH_PATH="$lib_search_path -L/usr/local/lib" LIBRARY_RPATH=`echo "$LIBRARY_SEARCH_PATH" | sed 's/[ *]-L[ *]/:/g'` HEADER_SEARCH_PATH="$inc_search_path -I/usr/local/include" AC_SUBST(LIBRARY_SEARCH_PATH) AC_SUBST(HEADER_SEARCH_PATH) dnl Determine operating system AC_CANONICAL_HOST case $host_os in *linux*) OS=linux ;; *solaris*) OS=solaris LIBS="$LIBS -lkstat" ;; *netbsd*) OS=netbsd LIBRARY_RPATH="$LIBRARY_RPATH:/usr/X11R6/lib" LIBS="$LIBS -lkvm" ;; *freebsd*) OS=freebsd LIBRARY_RPATH="$LIBRARY_RPATH:/usr/X11R6/lib" ;; *) echo "" echo "Sorry, $host_os is not supported yet." echo "" exit 1 ;; esac AC_SUBST(OS) dnl Stuff that uses X AC_PATH_XTRA dnl dnl Hack in rpath -- yes, this sucks, and it even has a hidden dependency dnl on the implementation of AC_PATH_XTRA. F@&* you, portability. dnl if test "$GCC" = yes; then if test "ac_R_space" = no; then RPATH="-Wl,\"-R$LIBRARY_RPATH\"" else RPATH="-Wl,\"-R $LIBRARY_RPATH\"" fi else RPATH= echo "WARNING: do not know how to set RPATH with this compiler" fi AC_SUBST(RPATH) X_LIBRARY_PATH=$x_libraries XCFLAGS="$X_CFLAGS" XLFLAGS="$X_LIBS" XLIBS="-lX11" dnl Checks for X library functions. WN_CHECK_LIB(Xpm, XpmCreatePixmapFromData, [$XLFLAGS $XLIBS]) if test "x$ac_cv_lib_Xpm_XpmCreatePixmapFromData" = xyes; then WN_CHECK_HEADER(X11/xpm.h, $XCFLAGS) if test "x$ac_cv_header_X11_xpm_h" = xno; then echo "Cannot find required libXpm headers." exit 1 fi else echo "" echo "Sorry, libXpm is required." exit 1 fi WN_CHECK_LIB(Xext, XShapeCombineMask, [$XLFLAGS $XLIBS]) if test "x$ac_cv_lib_Xext_XShapeCombineMask" = xyes; then XLIBS="$XLIBS -lXext" fi WN_CHECK_LIB(dockapp, DAInitialize, [$XLFLAGS $XLIBS -lXpm]) if test "x$ac_cv_lib_dockapp_DAInitialize" = xyes; then WN_CHECK_HEADER(dockapp.h, $XCFLAGS) if test "x$ac_cv_header_dockapp_h" != xyes; then echo "Cannot find required libdockapp headers." exit 1 fi else echo "" echo "Sorry, libdockapp is required." echo "The required version is at ftp://truffula.com/pub/libdockapp.tgz" exit 1 fi dnl Checks for library functions. AC_CHECK_LIB(socket, socket) AC_SUBST(X_LIBRARY_PATH) AC_SUBST(XCFLAGS) AC_SUBST(XLFLAGS) AC_SUBST(XLIBS) AC_SUBST(LIBS) dnl Checks for header files. AC_CHECK_HEADERS(sys/sockio.h) AC_CHECK_HEADERS(alloca.h) dnl Checks for typedefs, structures, and compiler/system characteristics. WN_TYPE_ULONGLONG_T WN_HAVE_SOCKADDR_SA_LEN WN_HAVE_IPV6 dnl Create Makefiles AC_OUTPUT(Makefile src/Makefile)