Codebase list foomatic-db / upstream/20100216 configure.ac
upstream/20100216

Tree @upstream/20100216 (Download .tar.gz)

configure.ac @upstream/20100216raw · history · blame

dnl Process this file with autoconf to produce a configure script.
AC_INIT(db/source/driver/ljet4.xml)

dnl If the user didn't specify the $sysconfdir on the command line, let it
dnl be /etc, not /usr/local/etc or /usr/etc
if [[ x$sysconfdir = 'x${prefix}/etc' ]]; then
  sysconfdir=/etc
fi

dnl Checks for programs.
AC_PROG_INSTALL
AC_PROG_MAKE_SET

SBINSEARCHPATH=/usr/sbin:/sbin:/usr/local/sbin:/etc/sbin
BINSEARCHPATH=/usr/bin:/bin:/usr/local/bin
DATASEARCHPATH=/usr/share:/usr/local/share:/usr/lib:/usr/local/lib:/opt
BSB=$BINSEARCHPATH:$SBINSEARCHPATH
AC_PATH_DIRS(CUPS_PPDS,cups/model,CUPS_PPDS_NOT_FOUND,$DATASEARCHPATH)
AC_PATH_PROG(GZIP,gzip,GZIP_NOT_FOUND,$BSB)

dnl disable PPD file compression
AC_MSG_CHECKING(PPD file gzip compression)
AC_ARG_ENABLE( gzip-ppds,
[  --disable-gzip-ppds     disable gzipping of custom PPD files],
[
if test "$enableval" = "yes" ; then
	GZIP_PPDS=yes;
else
	GZIP_PPDS=no;
fi
],
[
if test "$GZIP" != "GZIP_NOT_FOUND" ; then
	GZIP_PPDS=yes;
else
	GZIP_PPDS=no;
fi
],
)
AC_MSG_RESULT($GZIP_PPDS)
AC_SUBST(GZIP_PPDS)

dnl disable linking custom PPD files to CUPS PPDs (/usr/share/cups/model)
AC_MSG_CHECKING(making PPD files available to CUPS)
AC_ARG_ENABLE( ppds-to-cups,
[  --disable-ppds-to-cups  disable making custom PPDs available to CUPS],
[
if test "$enableval" = "yes" ; then
	PPDS_TO_CUPS=yes;
else
	PPDS_TO_CUPS=no;
fi
],
[
if test "$CUPS_PPDS" != "CUPS_PPDS_NOT_FOUND" ; then
	PPDS_TO_CUPS=yes;
else
	PPDS_TO_CUPS=no;
fi
],
)
AC_MSG_RESULT($PPDS_TO_CUPS)
AC_SUBST(PPDS_TO_CUPS)

dnl look for driver XMLs to include...
AC_ARG_WITH(drivers,
[  --with-drivers=LIST     Drivers to include, separated by commas.
                          Either list the drivers or use aliases:
                          ALL      = all drivers
                          NOOBSOLETES =
			             no drivers marked obsolete
                          NOEMPTYCMDLINE =
			             no drivers without invocation
				     command line
			  ONLYRECOMMENDED =
				     no drivers which are not
				     recommended for at least one
				     printer
                          You can mix both variants, e.g.
                          --with-drivers=ALL,NOOBSOLETES,gutenprint
			  would include all drivers except obsoletes, but
			  "gutenprint" is included even being obsolete
			  (list is treated from the left to the right).
                          Aliases must be uppercase (a 3rd party driver
			  might have the same name).
                          Default: NOOBSOLETES],
			  drivers="$withval",drivers="NOOBSOLETES")

AC_ARG_WITH(driversfile,
[  --with-driversfile=FILE Drivers to support from file, separated by newlines.],
driversfile="$withval",driversfile="")

if test "x$driversfile" != x; then
	# Add drivers from file...
	drivers="`tr '\n' ',' <$driversfile`"
fi

dnl If first item in the driver list is an excluding alias, assume that
dnl we want to exclude these items from all drivers
if `echo $drivers | egrep '^\s*(NO|ONLY)' > /dev/null`; then
   drivers="ALL,$drivers"
fi

dnl Check which driver XML files we will install
DRIVERXMLS="";

while test -n "$drivers"; do
	if echo $drivers |grep "," >/dev/null; then
		THIS="`echo $drivers |sed -e 's/,.*//'`"
		drivers="`echo $drivers |sed -e \"s/$THIS,//\"`"
	else
		THIS=$drivers
		drivers=""
	fi
	case "$THIS" in
	ALL)
		# ALL = PRINTERS + FILES...
		DRIVERXMLS=`cd db/source/driver/; ls -1 *.xml`
		;;
	NOOBSOLETES)
		OBSOLETEXMLS=`cd db/source/driver/; grep -li '< *obsolete.*/ *>' *.xml`
		while test -n "$OBSOLETEXMLS"; do
		    if echo $OBSOLETEXMLS |grep " " >/dev/null; then
		        REMOVE="`echo $OBSOLETEXMLS |sed -e 's/ .*//'`"
		        OBSOLETEXMLS="`echo $OBSOLETEXMLS |sed -e \"s/$REMOVE //\"`"
		    else
		        REMOVE=$OBSOLETEXMLS
		        OBSOLETEXMLS=""
		    fi
		    DRIVERXMLS=`echo $DRIVERXMLS | sed -e "s/$REMOVE *//"`
		done
		;;
	NOEMPTYCMDLINE)
		EMPTYCMDLINEXMLS=`cd db/source/driver/; grep -li '< *prototype *> *< */prototype *>' *.xml`
		EMPTYCMDLINEXMLS="$EMPTYCMDLINEXMLS `cd db/source/driver/; grep -li '< *prototype */ *>' *.xml`"
		EMPTYCMDLINEXMLS="$EMPTYCMDLINEXMLS `cd db/source/driver/; grep -Li '< *prototype' *.xml`"
		while test -n "$EMPTYCMDLINEXMLS"; do
		    if echo $EMPTYCMDLINEXMLS |grep " " >/dev/null; then
		        REMOVE="`echo $EMPTYCMDLINEXMLS |sed -e 's/ .*//'`"
		        EMPTYCMDLINEXMLS="`echo $EMPTYCMDLINEXMLS |sed -e \"s/$REMOVE //\"`"
		    else
		        REMOVE=$EMPTYCMDLINEXMLS
		        EMPTYCMDLINEXMLS=""
		    fi
		    DRIVERXMLS=`echo $DRIVERXMLS | sed -e "s/$REMOVE *//"`
		done
		;;
	ONLYRECOMMENDED)
		DRIVERXMLS2='';
		RECOMMENDEDXMLS=`grep '<driver>' db/source/printer/*.xml | perl -p -e 's:^.*<driver>(.*?)</driver>.*$:$1.xml:' | grep -v ':' | grep -v '^\.xml' | sort | uniq`
		while test -n "$RECOMMENDEDXMLS"; do
		    if echo $RECOMMENDEDXMLS |grep " " >/dev/null; then
		        KEEP="`echo $RECOMMENDEDXMLS |sed -e 's/ .*//'`"
		        RECOMMENDEDXMLS="`echo $RECOMMENDEDXMLS |sed -e \"s/$KEEP //\"`"
		    else
		        KEEP=$RECOMMENDEDXMLS
		        RECOMMENDEDXMLS=""
		    fi
		    if echo $DRIVERXMLS | grep $KEEP >/dev/null; then
		        DRIVERXMLS2="$DRIVERXMLS2 $KEEP"
		    fi
		done
		DRIVERXMLS=$DRIVERXMLS2
		;;
	*)
		# It's a driver name (or a user messup)
		DRIVERXMLS="$DRIVERXMLS $THIS.xml"
		;;
	esac
done
AC_SUBST(DRIVERXMLS)

dnl AC_OUTPUT(Makefile src/Makefile)
AC_OUTPUT(Makefile)

dnl Finished
echo "Finished configuring."
dnl echo "Type 'make' to build the package"
dnl echo "then 'make install' to install it."
echo "Type 'make install' to install the package."