1dnl Process this file with autoconf to produce a configure script.
2AC_PREREQ([2.52])
3AC_INIT([foomatic-db-engine], 4.0.13)
4AC_CONFIG_SRCDIR(foomatic-perl-data.c)
5
6# If the user didn't specify the $sysconfdir on the command line, let it
7# be /etc, not /usr/local/etc or /usr/etc
8if [[ x$sysconfdir = 'x${prefix}/etc' ]]; then
9  sysconfdir=/etc
10fi
11
12# Checks for programs.
13AC_PROG_CC
14AC_PROG_INSTALL
15AC_PROG_LN_S
16AC_PROG_MAKE_SET
17
18dnl # Checks for libraries.
19dnl AC_PATH_XTRA
20dnl LIBS="$LIBS"
21
22#
23# Test for libxml
24#
25xml_version=
26AC_PATH_PROG(XML2_CONFIG, xml2-config)
27if test ! -z "$XML2_CONFIG"; then
28        xml_version=libxml2
29        XML_CFLAGS=`$XML2_CONFIG --cflags`
30        XML_LIBS=`$XML2_CONFIG --libs`
31fi
32if test -z "$xml_version"; then
33        AC_PATH_PROG(XML_CONFIG, xml-config)
34        if test ! -z "$XML_CONFIG"; then
35                xml_version=libxml
36                XML_CFLAGS=`$XML_CONFIG --cflags`
37                XML_LIBS=`$XML_CONFIG --libs`
38        fi
39fi
40AC_SUBST(XML_CFLAGS)
41AC_SUBST(XML_LIBS)
42
43# Checks for header files.
44AC_HEADER_DIRENT
45AC_HEADER_STDC
46dnl AC_CHECK_HEADERS(libxml/xmlmemory.h libxml/parser.h)
47
48# Checks for typedefs, structures, and compiler characteristics.
49AC_C_CONST
50
51# Checks for library functions.
52AC_CHECK_FUNCS(strdup strspn strstr)
53
54#
55# augment CFLAGS and LIBS temporarily while searching for the xml* functions
56#
57save_CFLAGS="$CFLAGS"
58save_LIBS="$LIBS"
59CFLAGS="$XML_CFLAGS $CFLAGS"
60LIBS="$XML_LIBS $LIBS"
61AC_CHECK_FUNCS(xmlParseFile xmlCreatePushParserCtxt xmlParseChunk xmlFreeParserCtxt xmlFreeDoc xmlDocGetRootElement xmlNodeListGetString)
62CFLAGS="$save_CFLAGS"
63LIBS="$save_LIBS"
64
65# Checks for programs/directories which are used by Foomtic
66
67SPOOLSEARCHPATH=/var/spool:/usr/spool/:/usr/local/spool:/usr/local/var/spool:/var/local/spool:/var/local
68LOGSEARCHPATH=/var/log:/usr/log:/usr/local/log:/usr/local/var/log:/var/local/log:/var/local
69SYSCONFSEARCHPATH=/etc:/usr/etc:/usr/local/etc:/var/etc
70SBINSEARCHPATH=/usr/sbin:/sbin:/usr/local/sbin:/etc/sbin
71BINSEARCHPATH=/usr/bin:/bin:/usr/local/bin
72DATASEARCHPATH=/usr/share:/usr/local/share:$libdir:/usr/local/lib:/opt
73LIBSEARCHPATH=$libdir:/lib:/usr/local/lib:/usr/local/libexec:/opt
74PTALPIPESSEARCHPATH=/var/run:/var:/var/ptal:/usr/var/run:/usr/var:/usr/var/ptal:/usr/local/var/run:/usr/local/var:/usr/local/var/ptal:/dev:/dev/ptal
75MTINKPIPESSEARCHPATH=/var:/var/run:/usr/var/:/usr/var/run:/usr/local/var:/usr/local/var/run:/dev
76
77# There is a bug in some versions of autoconf that causes
78# bad expansion of paths in the AC_PATH_* macros.  This is very annoying
79
80BSB=$BINSEARCHPATH:$SBINSEARCHPATH
81SBB=$SBINSEARCHPATH:$BINSEARCHPATH
82SYS_LIB_PATH=$SYSCONFSEARCHPATH:$LIBSEARCHPATH
83
84# Get the operating system and version number...
85uname=`uname`
86uversion=`uname -r | sed -e '1,$s/[[^0-9]]//g'`
87if test x$uname = xIRIX64; then
88  uname="IRIX"
89fi
90
91if test x$uname = xIRIX; then
92  SPOOLSEARCHPATH="/usr/freeware/var/spool:$SPOOLSEARCHPATH"
93  LOGSEARCHPATH="/usr/freeware/var/log:$LOGSEARCHPATH"
94  SYSCONFSEARCHPATH="/usr/freeware/etc:$SYSCONFSEARCHPATH"
95  BINSEARCHPATH="/usr/freeware/bin:$BINSEARCHPATH"
96  SBINSEARCHPATH="/usr/freeware/sbin:$BINSEARCHPATH"
97  DATASEARCHPATH="/usr/freeware/share:$DATASEARCHPATH"
98  LIBSEARCHPATH="/usr/freeware/lib32:/usr/freeware/lib:$LIBSEARCHPATH"
99  PTALPIPESSEARCHPATH="/usr/freeware/var/run:$PTALPIPESSEARCHPATH"
100  MTINKPIPESSEARCHPATH="/usr/freeware/var/run:$MTINKPIPESSEARCHPATH"
101fi
102
103v="cannot open";
104AC_PATH_PROG(FILEUTIL,file,FILE_UTILITY_NOT_FOUND,$BSB)dnl
105if test "$FILEUTIL" != "FILE_UTILITY_NOT_FOUND" ; then
106	v=`${FILEUTIL} - </etc/passwd 2>/dev/null`;
107fi
108if expr "$v" : ".*cannot open.*" >/dev/null;  then
109	echo "Please use a file utility that handles 'file - 'correctly";
110	echo "You can obtain one from: ftp://ftp.astron.com/pub/file/";
111	echo " or ftp://ftp.lprng.com/pub/LPRng/UNIXTOOLS/file/";
112	echo "if necessary, use the FILEUTIL environment variable to specify the path"
113	exit 1
114fi
115
116AC_PATH_PROG(CAT,cat,CAT_NOT_FOUND,$BSB)
117AC_PATH_PROG(GS,gs,GHOSTSCRIPT_NOT_FOUND,$BSB)
118AC_PATH_PROG(A2PS,a2ps,A2PS_NOT_FOUND,$BSB)
119AC_PATH_PROG(WGET,wget,$BSB)
120AC_PATH_PROG(CURL,curl,$BSB)
121if test -z "$CURL" -a -z "$CURL" ; then
122	AC_MSG_ERROR("cannot find wget and curl.  You need to install at least one");
123fi
124AC_PATH_PROG(PRINTF,printf,$BSB)dnl
125
126# disable ghostscript check
127AC_MSG_CHECKING(Ghostscript check)
128AC_ARG_ENABLE( gscheck,
129[  --disable-gscheck      disable checking Ghostscript for security flaw],
130[
131if test "$enableval" = "yes" ; then
132	GSCHECK=yes;
133else
134	GSCHECK=no;
135fi
136],
137[
138	GSCHECK=no;
139],
140)
141AC_MSG_RESULT($GSCHECK)
142AC_SUBST(GSCHECK)
143
144echo GS "$GS"
145if test "$GS" != "GHOSTSCRIPT_NOT_FOUND" -a "$GSCHECK" != "no" ; then
146  AC_MSG_CHECKING(Ghostscript -dSAFER and -dPARANOIDSAFER option)
147  if $GS -q -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -sDEVICE=nullpage -sOutputFile=- $srcdir/gsQuit ; then
148    if $GS -q -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -sDEVICE=nullpage -sOutputFile=- $srcdir/gsTest 1>/dev/null 2>/dev/null ; then
149  	  AC_MSG_WARN( [
150WARNING: '($GS) -dSAFER -dPARANOIDSAFER ' allows files to be read
151Please read README.GhostscriptSecurityProblem
152and fix your distribution of Ghostscript
153OR use:
154configure --disable-gscheck
155] )
156      AC_MSG_ERROR(Ghostscript security hole found!)
157    else
158      AC_MSG_RESULT(no Ghostscript security hole found)
159    fi
160  else
161    AC_MSG_ERROR(Error with: $GS -q -dSAFER -dPARANOIDSAFER -sDEVICE=nullpage -sOutputFile=- )
162  fi
163fi
164
165
166AC_MSG_CHECKING(how to redirect Ghostscript output to fd 3)
167if test "$DEVFD3" = "" ; then
168	v=`( if test -d /dev/fd ; then echo 3 >/dev/fd/3; fi) 3>&1 1>&2`
169	if test "$v" != "" ; then
170		DEVFD3=/dev/fd/3
171		DEVFD0=/dev/fd/0
172	else
173		DEVFD3="|$CAT >&3"
174		DEVFD0=-
175	fi
176	if test "$GS" != "GHOSTSCRIPT_NOT_FOUND" -a "$GSCHECK" != "no" ; then
177	   rm -f gs_out
178	   gs -q -dBATCH -dNOPAUSE -dSAFER -dPARANOIDSAFER -sDEVICE=laserjet "-sOutputFile=$DEVFD3" ${srcdir}/gsPrint 3>gs_out
179	   if test "!" -s gs_out ; then
180		AC_MSG_ERROR("ERROR - gs cannot handle -sOutputFile=$OUT" )
181	   fi
182	fi
183fi
184AC_MSG_RESULT(using $DEVFD3)
185AC_SUBST(DEVFD3)
186AC_SUBST(DEVFD0)
187
188# Check for Perl
189AC_PATH_PROGS(PERL,perl,/usr/bin/perl,$BINSEARCHPATH)
190
191# Check whether Perl libraries will be found when installed with current
192# $prefix, if not, try to fall back to /usr/local at first, then to /usr
193if test x$prefix = xNONE; then
194  PREFIX=$ac_default_prefix
195else
196  PREFIX=$prefix
197fi
198echo -n Checking where Perl will find its libraries...
199if test "$PERLPREFIX" = "" ; then
200    eval `${PERL} -V:installprefix`
201    PERLPREFIX=`echo $installprefix`
202    if test -n "$PERLPREFIX"; then
203      echo " $PERLPREFIX"
204    else
205      PERLPREFIX=/usr
206      echo " not found, installing the Perl libraries with prefix /usr."
207    fi
208else
209    echo " $PERLPREFIX"
210fi
211AC_SUBST(PERLPREFIX)
212
213# Perl installation directories
214
215dnl This works only with autoconf 2.52 or newer
216AC_ARG_VAR(PERL_INSTALLDIRS, [Where should the Perl libraries be installed (Default: site, Choices: perl, site, vendor)?])
217if test -z "$PERL_INSTALLDIRS"; then
218  PERL_INSTALLDIRS=site
219fi
220
221dnl This works also with autoconf 2.13
222dnl PERL_INSTALLDIRS=site
223dnl AC_SUBST(PERL_INSTALLDIRS)
224
225# Check for bourne shell
226AC_PATH_PROGS(SH,bash sh,/bin/sh,$BINSEARCHPATH)
227
228# Paths for LPD and LPRng (without magicfilter)
229FM_PATH_DIRS(LPD_SPOOL,lpd,/var/spool/lpd,$SPOOLSEARCHPATH)
230AC_PATH_PROGS(LPD_LOG,lp-errs,/var/log/lp-errs,$LOGSEARCHPATH)
231AC_PATH_PROGS(LPD_BIN,lpd,/usr/sbin/lpd,$SBINSEARCHPATH)
232AC_PATH_PROGS(PRINTCAP,printcap,/etc/printcap,$SYSCONFSEARCHPATH)
233AC_PATH_PROGS(LPRNG_CONF,lpd.conf,/etc/lpd.conf,$SYSCONFSEARCHPATH)
234AC_PATH_PROGS(LPD_LPR,lpr-lpd lpr-lprng lpr-lpr lpr,/usr/bin/lpr,$BINSEARCHPATH)
235AC_PATH_PROGS(LPD_LPQ,lpq-lpd lpq-lprng lpq-lpr lpq,/usr/bin/lpq,$BINSEARCHPATH)
236AC_PATH_PROGS(LPD_LPRM,lprm-lpd lprm-lprng lprm-lpr lprm,/usr/bin/lprm,$BINSEARCHPATH)
237AC_PATH_PROGS(LPD_LPC,lpc-lpd lpc-lprng lpc-lpr lpc,/usr/sbin/lpc,$SBB)
238AC_PATH_PROGS(LPRNG_CHECKPC,checkpc,/usr/sbin/checkpc,$SBINSEARCHPATH)
239
240# Paths and other settings for CUPS
241FM_PATH_DIRS(CUPS_ETC,cups,/etc/cups,$SYSCONFSEARCHPATH)
242AC_PATH_PROGS(CUPS_ADMIN,lpadmin,/usr/sbin/lpadmin,$SBINSEARCHPATH)
243AC_PATH_PROGS(CUPS_LPSTAT,lpstat,/usr/bin/lpstat,$BINSEARCHPATH)
244FM_PATH_DIRS(CUPS_PPDS,cups/model,/usr/share/cups/model,$DATASEARCHPATH)
245FM_PATH_DIRS(CUPS_FILTERS,cups/filter,/usr/lib/cups/filter,$DATASEARCHPATH)
246FM_PATH_DIRS(CUPS_BACKENDS,cups/backend,/usr/lib/cups/backend,$DATASEARCHPATH)
247FM_PATH_DIRS(LIB_CUPS,cups,/usr/lib/cups,$LIBSEARCHPATH)
248AC_PATH_PROGS(CUPS_PCONF,cups/printers.conf,$CUPS_ETC/printers.conf,$SYSCONFSEARCHPATH)
249AC_PATH_PROGS(CUPS_LPR,lpr-cups lpr,/usr/bin/lpr,$BINSEARCHPATH)
250AC_PATH_PROGS(CUPS_LPQ,lpq-cups lpq,/usr/bin/lpq,$BINSEARCHPATH)
251AC_PATH_PROGS(CUPS_LPRM,lprm-cups lprm,/usr/bin/lprm,$BINSEARCHPATH)
252AC_PATH_PROGS(CUPS_LPC,lpc-cups lpc,/usr/sbin/lpc,$SBB)
253AC_PATH_PROGS(CUPS_LP,lp-cups lp,/usr/bin/lp,$BINSEARCHPATH)
254AC_PATH_PROGS(CUPS_CANCEL,cancel-cups cancel,/usr/bin/cancel,$BSB)
255AC_PATH_PROGS(CUPS_ENABLE,enable,/usr/bin/enable,$BSB)
256AC_PATH_PROGS(CUPS_DISABLE,disable,/usr/bin/disable,$BSB)
257AC_PATH_PROGS(CUPS_ACCEPT,accept,/usr/sbin/accept,$SBB)
258AC_PATH_PROGS(CUPS_REJECT,reject,/usr/sbin/reject,$SBB)
259AC_PATH_PROGS(CUPS_LPMOVE,lpmove,/usr/sbin/lpmove,$SBB)
260AC_PATH_PROGS(CUPS_LPOPTIONS,lpoptions,/usr/bin/lpoptions,$BINSEARCHPATH)
261AC_PATH_PROGS(CUPS_LPINFO,lpinfo,/usr/sbin/lpinfo,$SBINSEARCHPATH)
262
263# Paths for PDQ
264FM_PATH_DIRS(PDQ_CONF,pdq,$libdir/pdq,$SYS_LIB_PATH)
265AC_PATH_PROGS(PDQ_PRINTRC,pdq/printrc,$PDQ_CONF/printrc,$SYS_LIB_PATH)
266dnl PDQ_FOOMATIC=$PDQ_CONF/drivers/foomatic
267AC_PATH_PROGS(PDQ_PRINT,pdq lpr-pdq,/usr/bin/pdq,$BINSEARCHPATH)
268dnl PDQ_JOBDIR=~/.printjobs
269
270# Paths for PPR
271AC_PATH_PROGS(PPR_PPRD,ppr/bin/pprd,$libdir/ppr/bin/pprd,$LIBSEARCHPATH)
272FM_PATH_DIRS(PPR_INTERFACES,ppr/interfaces,$libdir/ppr/interfaces,$LIBSEARCHPATH)
273FM_PATH_DIRS(PPR_PPDFILES,ppr/PPDFiles,/usr/share/ppr/PPDFiles,$DATASEARCHPATH)
274FM_PATH_DIRS(PPR_ETC,ppr,/etc/ppr,$SYSCONFSEARCHPATH)
275AC_PATH_PROGS(PPR_PPR,ppr lpr-ppr,/usr/bin/ppr,$BINSEARCHPATH)
276AC_PATH_PROGS(PPR_PPAD,ppad,/usr/bin/ppad,$BSB)
277AC_PATH_PROGS(PPR_PPOP,ppop,/usr/bin/ppop,$BSB)
278
279dnl # Paths for direct, spoolerless printing
280dnl DIRECT_ETC=/etc/foomatic/direct
281dnl DIRECT_CONFIG=$(DIRECT_ETC)/.config
282
283# Other paths
284AC_PATH_PROGS(NC,nc netcat,/usr/bin/nc,$BSB)
285AC_PATH_PROGS(RLPR,rlpr,/usr/bin/rlpr,$BSB)
286AC_PATH_PROGS(SMBCLIENT,smbclient,/usr/bin/smbclient,$BSB)
287AC_PATH_PROGS(NPRINT,nprint,/usr/bin/nprint,$BSB)
288AC_PATH_PROGS(PTAL_CONNECT,ptal-connect,/usr/bin/ptal-connect,$BSB)
289FM_PATH_DIRS(PTAL_PIPES,ptal-printd,/var/run/ptal-printd,$PTALPIPESSEARCHPATH)
290FM_PATH_DIRS(MTINK_PIPES,mtink,/var/mtink,$MTINKPIPESSEARCHPATH)
291AC_PATH_PROGS(GZIP,gzip,/bin/gzip,$BSB)
292
293# Path for Foomatic XML database (foomatic-db)
294FM_PATH_DIRS(LIBDIR,foomatic/db/source,/usr/share/foomatic/db/source,$DATASEARCHPATH)
295LIBDIR=`echo $LIBDIR | sed -e "s:/db/source$::"`
296FM_PATH_DIRS(LOCAL_LIBDIR,db/source,../foomatic-db/db/source,.:./foomatic-db:./foomatic-db*:../foomatic-db:../foomatic-db*)
297LOCAL_LIBDIR=`echo $LOCAL_LIBDIR | sed -e "s:/db/source$::"`
298
299# Path for foomatic-rip (from foomatic-filters)
300AC_PATH_PROGS(FOOMATIC_RIP,foomatic-rip,/usr/bin/foomatic-rip,$BSB)
301AC_PATH_PROGS(LOCAL_FOOMATIC_RIP,foomatic-rip,../foomatic-filters/foomatic-rip,.:./foomatic-filters:./foomatic-filters*:../foomatic-filters:../foomatic-filters*)
302
303AC_CONFIG_FILES(Makefile makeDefaults makeMan
304foomatic-configure foomatic-printjob foomatic-kitload
305foomatic-ppdfile foomatic-preferred-driver foomatic-cleanupdrivers
306foomatic-getpjloptions foomatic-addpjloptions
307foomatic-compiledb foomatic-fix-xml
308foomatic-nonumericalids foomatic-replaceoldprinterids
309foomatic-ppd-options foomatic-printermap-to-gutenprint-xml
310foomatic-extract-text foomatic-searchprinter foomatic-ppd-to-xml
311)
312AC_OUTPUT
313
314# Finished
315echo "Finished configuring."
316echo "Type 'make' to build the package"
317echo "then 'make install' to install it."
318