dnl Process this file with autoconf to produce a configure script. dnl $Id$ AC_INIT(lib/mbselib.h) AM_CONFIG_HEADER(config.h) SUBDIRS="lib mbcico mbfido mbmon mbsebbs mbutils mbnntp mbtask mbsetup unix lang examples html script" AC_SUBST(SUBDIRS) dnl dnl General settings for MBSE BBS dnl After changeing the version number, run autoconf! dnl PACKAGE="mbsebbs" MAJOR="0" MINOR="80" REVISION="0" VERSION="$MAJOR.$MINOR.$REVISION" COPYRIGHT="Copyright (C) 1997-2005 Michiel Broek, All Rights Reserved" SHORTRIGHT="Copyright (C) 1997-2005 M. Broek" GROUP="bbs" OWNER="mbse" ROWNER="`id -un root`" RGROUP="`id -gn root`" AC_SUBST(PACKAGE) AC_SUBST(MAJOR) AC_SUBST(MINOR) AC_SUBST(REVISION) AC_SUBST(COPYRIGHT) AC_SUBST(GROUP) AC_SUBST(OWNER) AC_SUBST(ROWNER) AC_SUBST(RGROUP) AC_PREFIX_DEFAULT(/opt/mbse) AC_DEFINE_UNQUOTED(VERSION, "$VERSION") AC_DEFINE_UNQUOTED(VERSION_MAJOR, $MAJOR) AC_DEFINE_UNQUOTED(VERSION_MINOR, $MINOR) AC_DEFINE_UNQUOTED(VERSION_REVISION, $REVISION) AC_DEFINE_UNQUOTED(COPYRIGHT, "$COPYRIGHT") AC_DEFINE_UNQUOTED(SHORTRIGHT, "$SHORTRIGHT") AC_SUBST(VERSION) SYSTEM="`uname -s`" CPU="`uname -m`" dnl dnl Checks for programs. dnl Try to find GNU make dnl AC_CHECK_PROG(MAKE, gmake, gmake) AC_CHECK_PROG(MAKE, make, make) dnl Alternate awk check, I skip mawk because it doesn't work for MBSE. AC_CHECK_PROG(AWK, gawk, gawk) AC_CHECK_PROG(AWK, nawk, nawk) AC_CHECK_PROG(AWK, awk, awk) dnl Try to find GNU install AC_CHECK_PROG(INSTALL, ginstall, ginstall) AC_CHECK_PROG(INSTALL, install, install) AC_PROG_CC AC_PROG_MAKE_SET AC_PROG_RANLIB AC_PROG_LN_S AC_CHECK_PROG(TAR, tar, tar) AC_CHECK_PROG(ZIP, zip, zip) AC_PATH_PROG(CHOWN, chown, chown, /bin:/sbin:/usr/bin:/usr/sbin:) AC_C_BIGENDIAN dnl dnl Additional commandline switches dnl AC_ARG_ENABLE(experiment, [ --enable-experiment Compile experimental code], [ experiment=$enableval ], [ experiment=no ]) if test "$experiment" = "yes"; then AC_DEFINE(USE_EXPERIMENT) fi AC_ARG_ENABLE(debugging, [ --enable-debugging Compile for debugging], [ debugging=$enableval ], [ debugging=no ]) if test "$debugging" = "yes"; then CFLAGS="-O -g -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT" else CFLAGS="-O2 -fno-strict-aliasing -Wall -Wshadow -Wwrite-strings -Wstrict-prototypes -D_REENTRANT" fi AC_ARG_ENABLE(optimize, [ --enable-optimize Enable CPU optimize], [ optimize=$enableval ], [ optimize=no ]) if test "$optimize" = "yes"; then AC_MSG_CHECKING(for cpuflags) for cpuflagsbin in /usr/bin /usr/local/bin /usr/pkg/bin `pwd` NONE; do if test "$cpuflagsbin" = "NONE"; then AC_MSG_RESULT(unknown) elif test -x $cpuflagsbin/cpuflags; then CPUFLAGS=`$cpuflagsbin/cpuflags` AC_MSG_RESULT($CPUFLAGS) CFLAGS="$CPUFLAGS $CFLAGS" break fi done fi dnl dnl Enable full newsgate, this was default upto 0.50.0 dnl AC_ARG_ENABLE(newsgate, [ --enable-newsgate Compile with newsgate], [ newsgate=$enableval ], [ newsgate=no ]) if test "$newsgate" = "yes"; then AC_DEFINE(USE_NEWSGATE) NEWSGATE="Yes" else NEWSGATE="No" fi dnl dnl Checks for libraries and functions. dnl AC_CHECK_LIB(compat,re_comp,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lcompat" fi AC_CACHE_CHECK(for pw_age in struct passwd, ac_cv_struct_passwd_pw_age, AC_TRY_COMPILE([#include ], [ struct passwd pw; pw.pw_age = ""; ], ac_cv_struct_passwd_pw_age=yes, ac_cv_struct_passwd_pw_age=no)) if test "$ac_cv_struct_passwd_pw_age" = "yes"; then AC_DEFINE(ATT_AGE) fi AC_CACHE_CHECK(for pw_comment in struct passwd, ac_cv_struct_passwd_pw_comment, AC_TRY_COMPILE([#include ], [ struct passwd pw; pw.pw_comment = ""; ], ac_cv_struct_passwd_pw_comment=yes, ac_cv_struct_passwd_pw_comment=no)) if test "$ac_cv_struct_passwd_pw_comment" = "yes"; then AC_DEFINE(ATT_COMMENT) fi AC_CHECK_LIB(shadow,setspent,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lshadow" SHADOW_PASSWORD=1 LIBSHADOW=1 else AC_CHECK_LIB(shadow,getspnam,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lshadow" SHADOW_PASSWORD=1 LIBSHADOW=1 else dnl some libc's (glibc 2.x) keep shadow functions in -lc AC_CHECK_LIB(c,setspent,result=yes,result=no) if test "$result" = "yes"; then if test -f /etc/shadow; then SHADOW_PASSWORD=1 fi fi fi fi if test "$SHADOW_PASSWORD" = "1"; then if test "$ac_cv_func_fgetspent" != "yes"; then AC_CHECK_LIB(shadow,fgetspent,result=yes,result=no) if test "$result" = "yes"; then if test "$LIBSHADOW" != "1"; then LIBS="$LIBS -lshadow" fi fi fi AC_DEFINE(SHADOW_PASSWORD) fi AC_CHECK_LIB(crypt,crypt,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lcrypt" fi AC_CHECK_LIB(util,login,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lutil" AC_CHECK_HEADERS(util.h) AC_CHECK_HEADERS(libutil.h) AC_CHECK_HEADERS(sys/types.h) fi dnl dnl Support for zlib and bzlib transfers compression dnl ZLIBSUP=No AC_CHECK_LIB(z,compress2,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lz" AC_CHECK_HEADERS(zlib.h,ZLIBSUP=Yes,ZLIBSUP=No) fi BZLIBSUP=No AC_CHECK_LIB(bz2,BZ2_bzCompressInit,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lbz2" AC_CHECK_HEADERS(bzlib.h,BZLIBSUP=Yes,BZLIBSUP=No) fi dnl dnl The last library to add, according to Sun the -lpthread must be the dnl very last library specified on the gcc command line. dnl dnl dnl On NetBSD we need to add the pkg dirs for posix threads dnl if test "$SYSTEM" = "NetBSD"; then CFLAGS="$CFLAGS `pthread-config --cflags`" LDFLAGS="$LDFLAGS `pthread-config --ldflags`" fi dnl dnl For FreeBSD and OpenBSD we need -pthread for gcc and don't need libpthread dnl if test "$SYSTEM" = "FreeBSD" || test "$SYSTEM" = "OpenBSD"; then CFLAGS="-pthread $CFLAGS" else AC_CHECK_LIB(pthread,pthread_create,result=yes,result=no) if test "$result" = "yes"; then LIBS="$LIBS -lpthread" fi fi dnl dnl Checks for header files. dnl AC_HEADER_STDC AC_HEADER_DIRENT AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_CHECK_HEADERS(termios.h sys/termios.h termio.h sys/termio.h sgtty.h) AC_CHECK_HEADERS(sys/time.h sys/vfs.h unistd.h netinet/in.h regex.h) AC_CHECK_HEADERS(sys/resource.h usersec.h gshadow.h shadow.h crypt.h) AC_CHECK_HEADERS(limits.h utmp.h utmpx.h lastlog.h rpc/key_prot.h) AC_STRUCT_TIMEZONE dnl dnl Checks for typedefs, structures, and compiler characteristics. dnl AC_C_CONST AC_TYPE_UID_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_MODE_T AC_TYPE_SIZE_T AC_STRUCT_ST_BLKSIZE AC_HEADER_STAT AC_STRUCT_TM dnl dnl Checks for library functions. dnl AC_CHECK_FUNCS(c64i a64l fchmod fchown fdatasync fsync lckpwdf strcasestr putpwent) AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_TYPE_SIGNAL AC_FUNC_UTIME_NULL AC_CHECK_FUNCS(gettimeofday re_comp select) AC_CHECK_FUNCS(getspnam initgroups updwtmp updwtmpx) dnl dnl Check for usefull external programs dnl AC_PATH_PROG(COMPRESS,compress,no-compress-found-during-configure) AC_PATH_PROG(GZIP,gzip,no-gzip-found-during-configure) AC_PATH_PROG(ARC,arc) AC_PATH_PROG(NOMARCH,nomarch) AC_PATH_PROG(ARJ,arj) AC_PATH_PROG(UNARJ,unarj) AC_PATH_PROG(LHA,lha) AC_PATH_PROG(RAR,rar) AC_PATH_PROG(UNRAR,unrar) AC_PATH_PROG(TAR,tar) AC_PATH_PROG(ZIP,zip) AC_PATH_PROG(UNZIP,unzip) AC_PATH_PROG(ZOO,zoo) AC_PATH_PROG(HA,ha) AC_PATH_PROG(ANTIVIR,antivir) AC_PATH_PROG(FPROT,f-prot) AC_PATH_PROG(UVSCAN,uvscan) AC_PATH_PROG(CLAMAV,clamscan) AC_PATH_PROG(RB,rb) AC_PATH_PROG(RB,lrb) AC_PATH_PROG(SB,sb) AC_PATH_PROG(SB,lsb) AC_PATH_PROG(RZ,rz) AC_PATH_PROG(RZ,lrz) AC_PATH_PROG(SZ,sz) AC_PATH_PROG(SZ,lsz) AC_PATH_PROG(GOLDEDBIN,golded) AC_PATH_PROG(GOLDEDBIN,gedlnx) AC_PATH_PROG(GOLDNODE,goldnode) AC_PATH_PROG(GOLDNODE,gnlnx) AC_PATH_PROG(CONVERT,convert) dnl dnl FIX DEL for Del!=207, this was default upto 207 or 126 if no argument dnl AC_ARG_ENABLE(gbkdel, [ --enable-gbkdel Delete key is 126 (default is 207)], [ gbkdel=$enableval ], [ gbkdel=no ]) if test "$gbkdel" = "yes"; then GBK_DEL=126 DEL=$GBK_DEL echo "checking delete key... changed into $DEL" else DEL="default" GBK_DEL=0 echo "checking delete key... default" fi AC_DEFINE_UNQUOTED(GBK_DEL,$GBK_DEL) AC_MSG_CHECKING(location of joe editor) for joebin in /usr/bin /usr/local/bin /usr/pkg/bin NONE; do if test "$joebin" = "NONE"; then AC_MSG_RESULT(not found) elif test -x $joebin/joe; then AC_SUBST(joebin) AC_MSG_RESULT($joebin) break fi done AC_MSG_CHECKING(location of joe rc files) for joelib in /etc/joe /usr/lib/joe /usr/local/etc /usr/local/etc/joe /usr/local/lib/joe /usr/local/lib /usr/pkg/lib /usr/pkg/etc NONE; do if test "$joelib" = "NONE"; then AC_MSG_RESULT(not found) elif test -f $joelib/joerc; then AC_SUBST(joelib) AC_MSG_RESULT($joelib) break fi done AC_MSG_CHECKING(location of utmp) for utmpdir in /var/run /var/adm /usr/adm /etc NONE; do if test "$utmpdir" = "NONE"; then AC_MSG_WARN(utmp file not found) elif test -f $utmpdir/utmp; then AC_DEFINE_UNQUOTED(_UTMP_FILE, "$utmpdir/utmp") AC_MSG_RESULT($utmpdir) break fi done AC_MSG_CHECKING(location of lastlog/wtmp) for logdir in /var/log /var/adm /usr/adm /etc; do if test -d $logdir; then AC_DEFINE_UNQUOTED(_WTMP_FILE, "$logdir/wtmp") AC_DEFINE_UNQUOTED(LASTLOG_FILE, "$logdir/lastlog") AC_MSG_RESULT($logdir) break fi done AC_MSG_CHECKING(location of vpopmail) for vpop in /var/qmail/vpopmail/bin NONE; do if test "$vpop" = "NONE"; then AC_MSG_RESULT(not found) elif test -x $vpop/vadduser; then AC_DEFINE_UNQUOTED(_VPOPMAIL_PATH, "$vpop") AC_MSG_RESULT($vpop) break fi done AC_OUTPUT( Makefile.global paths.h unix/login.defs INSTALL FILE_ID.DIZ script/editor html/index.htm html/basic.html html/upgrade.html ) #================================================================================= AC_MSG_RESULT([ -=-=-=-=-=-=-=-=-=-= Configuration Complete =-=-=-=-=-=-=-=-=-=- Configuration summary : Version : ..................... ${VERSION} Hydra/Binkp zlib compression : ${ZLIBSUP} Binkp bzlib compression : ..... ${BZLIBSUP} Full newsgate : ............... ${NEWSGATE} Delete key : .................. ${DEL} ]) if test x$ac_cv_c_compiler_gnu = xyes ; then echo -e " Tools :\n" echo " Compiler is GCC : ............. ${ac_cv_c_compiler_gnu}" fi AC_MSG_RESULT([ Installation directories : Main directory : ........... ${prefix} Owner and group : ........... ${OWNER}.${GROUP} Now type 'make' and as root 'make install' ])