1dnl Process this -*-fundamental-*- file with autoconf 2dnl to produce the configure script for c-nocem. 3AC_INIT(fastcancel.c) 4: $Id: configure.in,v 1.9 2001/02/16 21:59:38 olaf Exp $ 5 6dnl --- Checks for programs. --- 7 8AC_PROG_CC 9AC_PROG_INSTALL 10AC_PROG_AWK 11AC_PATH_PROGS(PERL, [perl perl5 perl4], [not found]) 12test "$PERL" = "not found" && AC_MSG_ERROR(This needs perl.) 13AC_PATH_PROG(GPG, gpg, [not found]) 14if test "$GPG" = "not found" ; then 15 AC_PATH_PROG(PGP, pgp, [not found]) 16 test "$PGP" = "not found" && AC_MSG_ERROR(This needs PGP or GnuPG.) 17 PGP="$PGP -f +batchmode +language=en +verbose=1 +pubring=\$pubring" 18else 19 PGP="$GPG --batch -q --keyring \$pubring" 20fi 21 22dnl --- Check for headers and libraries. --- 23 24AC_CHECK_HEADERS(string.h memory.h) 25AC_CHECK_LIB(socket,socket) 26AC_CHECK_LIB(nsl,gethostbyname) 27 28dnl --- Configuration options. --- 29 30nsys="" 31AC_ARG_WITH(cnews, 32[ --with-cnews=DIR Specify C News source directory], [ 33 nsys=cnews 34 nsrc=$withval 35]) 36AC_ARG_WITH(inn, 37[ --with-inn=DIR Specify INN source directory], [ 38 nsys=inn 39 nsrc=$withval 40]) 41dnl Where to search for sources. 42sdirs="/usr/src /usr/local /usr/local/src /opt/src /var/src" 43 44dnl --- Search for INN source. --- 45 46if test "X$nsys" = "X" ; then 47 AC_MSG_CHECKING(for INN source) 48 for i in $sdirs ; do 49 for j in INN inn INN2 INN-2 ; do 50 if test "X$nsys" = "X" -a -f $i/$j/lib/dbz.c ; then 51 AC_MSG_RESULT($nsrc) 52 nsys=inn 53 nsrc=$i/$j 54 fi 55 done 56 done 57 if test "X$nsys" = "X" ; then 58 AC_MSG_RESULT(no) 59 fi 60fi 61 62dnl --- Search for C News source. --- 63 64if test "X$nsys" = "X" ; then 65 AC_MSG_CHECKING(for C News source) 66 for i in $sdirs ; do 67 for j in cnews c-news CNews cnews-CR.G ; do 68 if test "X$nsys" = "X" -a -f $i/$j/libdbz/dbz.c ; then 69 AC_MSG_RESULT($nsrc) 70 nsys=cnews 71 nsrc=$i/$j 72 fi 73 done 74 done 75 if test "X$nsys" = "X" ; then 76 AC_MSG_RESULT(no) 77 fi 78fi 79 80dnl --- Macros. --- 81 82dnl Get definition for $1 from file $2: line starts with $3 and use pos $4 83 dnl I don't claim this macro is beautiful. 84AC_DEFUN(NEWSVAR, [dnl 85AC_MSG_CHECKING(for $1) 86changequote(, )dnl 87re=`$AWK '/^'$3'[^A-Z_]/ {print $'$4'}' $nsrc/$2` 88changequote([, ])dnl 89if test "$re"; then 90 AC_MSG_RESULT($re) 91else 92 AC_MSG_RESULT(no) 93fi 94$1="$re"]) 95 96dnl Check if the $1 parameter exists in inn.conf. 97AC_DEFUN(INNCONF, [dnl 98AC_MSG_CHECKING(for $1 in inn.conf) 99if grep $1 $nsrc/include/libinn.h >/dev/null ; then 100 AC_MSG_RESULT(yes) 101 uc=`echo $1| tr a-z A-Z` 102 AC_DEFINE_UNQUOTED(HAVE_INNCONF_$uc) 103else 104 AC_MSG_RESULT(no) 105fi]) 106 107dnl --- Test for C News. --- 108 109if test "X$nsys" = "Xcnews" ; then 110 111 AC_DEFINE(CNEWS) 112 CPPFLAGS="$CPPFLAGS -I$nsrc/libdbz" 113 LIBS="-L$nsrc -lcnews $LIBS" 114 PROGS="fastcancel" 115 NEWSVAR(newslib, conf/substitutions, NEWSCTL, 2) 116 newsetc=$newslib 117 newsdb=$newslib 118 NEWSVAR(newsarts, conf/substitutions, NEWSARTS, 2) 119 newstmp=$newslib/tmp 120 newslogfile=$newslib/log 121 NEWSVAR(newsbin, conf/substitutions, NEWSBIN, 2) 122else if test "X$nsys" = "Xinn" ; then 123 AC_DEFINE(INN) 124 CPPFLAGS="$CPPFLAGS -I$nsrc/include -I$nsrc/dbz" 125 PROGS="fastcancel groupcheck" 126else 127 AC_MSG_ERROR(Need the news system source to compile.) 128fi 129fi 130 131dnl --- Test INN version dependencies. --- 132 133cf= 134AC_ARG_ENABLE(cancelfeed, 135[ --enable-cancelfeed Compile the cancelfeed program], cf=cancelfeed) 136 137if test "X$nsys" = "Xinn" ; then 138 AC_MSG_CHECKING(for INN version) 139 if test -d $nsrc/storage ; then 140 AC_MSG_RESULT(2.x) 141 AC_DEFINE(INN2) 142 dnl Pick up definitions from Makefile.global 143 cat $nsrc/Makefile.global >conftest.make 144 cat <<'END' >>conftest.make 145print-defs: 146 @echo newslib=$(PATHNEWS) 147 @echo newsetc=$(PATHETC) 148 @echo newsdb=$(PATHDB) 149 @echo newsspool=$(PATHSPOOL) 150 @echo newsbin=$(PATHBIN) 151 @echo logdir=$(PATHLOG) 152END 153 eval `make -f conftest.make print-defs` 154 rm -f conftest.make 155 dnl the following is incorrect but newsarts is ignored for 2.x 156 newsarts=$newsspool 157 newstmp=$newsspool/tmp 158 newslogfile=$logdir/news 159 INNCONF(storemsgid) 160 INNCONF(storageapi) 161 INNCONF(extendeddbz) 162 NEWSVAR(libtool, Makefile.global, LIBTOOL, 3) 163 if test -n "$libtool" ; then 164 LIBTOOL="/bin/sh $nsrc/libtool --quiet" 165 dnl hopefully this doesnt change again 166 LIBS="$nsrc/lib/libinn.la $nsrc/storage/libstorage.la $LIBS" 167 else 168 LIBTOOL= 169 LIBS="-L$nsrc -L$nsrc/lib -L$nsrc/storage -lstorage -linn -lstorage $LIBS" 170 fi 171 if test "x$cf" = "x"; then 172 AC_MSG_CHECKING([for INN >= 2.4]) 173 $LIBTOOL $CC $CPPFLAGS $CFLAGS $LDFLAGS -o innversion innversion.c $LIBS 174 set `./innversion` 175 case "$2" in 176 2.[[0123]]*) AC_MSG_RESULT(no) ;; 177 *) AC_MSG_RESULT(yes); cf=cancelfeed ;; 178 esac 179 fi 180 PROGS="$PROGS $cf" 181 182 dnl More dbz incompatibilities. 183 xcc="$CC" 184 CC="$LIBTOOL $xcc" 185 AC_MSG_CHECKING(for two-arg form of dbzfetch) 186 AC_TRY_COMPILE([#include "cncdbz.h"],[ 187 HASH h; 188 OFFSET_T v; 189 dbzfetch(h, &v); 190],[ 191 AC_MSG_RESULT(yes) 192 AC_DEFINE(HAVE_DBZFETCH_2) 193], AC_MSG_RESULT(no)) 194 195 AC_MSG_CHECKING(for reverted dbz API) 196 AC_TRY_COMPILE([#include "cncdbz.h"],[ 197 #ifndef DO_TAGGED_HASH 198 idxrec ov; 199 #endif 200], AC_MSG_RESULT(no), [ 201 AC_MSG_RESULT(yes) 202 AC_DEFINE(DBZ_REVERTED) 203]) 204 205 CC="$xcc" 206 207 else 208 AC_MSG_RESULT(1.x) 209 NEWSVAR(newslib, config/config.data, _PATH_NEWSLIB, 2) 210 newsetc=$newslib 211 newsdb=$newslib 212 NEWSVAR(newsarts, config/config.data, _PATH_SPOOL, 2) 213 newstmp=$newslib/tmp 214 NEWSVAR(newsbin, config/config.data, _PATH_NEWSBIN, 2) 215 NEWSVAR(newslogfile, config/config.data, _PATH_LOGFILE, 2) 216 LIBS="-L$nsrc -L$nsrc/lib -linn $LIBS" 217 fi 218fi 219 220dnl --- Checks for types. --- 221 222AC_MSG_CHECKING(for time_t) 223AC_TRY_COMPILE([#include <time.h>], [time_t t;], [actt=time_t], [ 224actt="unsigned long" 225AC_DEFINE(time_t, unsigned long) 226]) 227AC_MSG_RESULT($actt) 228 229dnl --- Prepare output. --- 230 231AC_SUBST(PERL) 232AC_SUBST(PGP) 233AC_SUBST(PROGS) 234AC_SUBST(LIBTOOL) 235AC_SUBST(newslib) 236AC_SUBST(newsetc) 237AC_SUBST(newsdb) 238AC_SUBST(newsarts) 239AC_SUBST(newstmp) 240AC_SUBST(newsbin) 241AC_SUBST(newslogfile) 242newspath="$PATH:$newsbin" 243AC_SUBST(newspath) 244AC_DEFINE_UNQUOTED(NEWSARTS, "$newsarts") 245AC_DEFINE_UNQUOTED(HISTFILE, "$newsdb/history") 246AC_OUTPUT(Makefile c-nocem) 247