# Makefile to create LPRng, ifhp, and LPRngTool
# targets:
# make all - does unpack, configure, build
# make unpack - untars the latest releases, creates symlinks to distributions
# make configure - does configure in distributions, create .configured in subdirectory
# make build - does a make all in the subdirs
# make install - does a make install in the subdirs
# and some fixup of files
# make printcap - cd PRINTCAP and makes/installs new printcap...
# see PRINTCAP/Makefile for details
# make lpd.perms lpd.conf - cd to LPD_PERMS, LPD_CONF and does install
# - lpd.perms is usually the only thing needed
# make clean - does a make clean in the subdirs
# what distributions do you want
dist=ifhp LPRng LPRngTool
# what configuration files do you want
config=PRINTCAP LPD_PERMS
sysconfdir=/etc/lpd
filterdir=/usr/libexec/filters
#filters=transmeta.bp
#
# Directory and file names:
# --prefix=PREFIX install architecture-independent files in PREFIX
# [/usr/local]
# --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
# [same as prefix]
# --bindir=DIR user executables in DIR [EPREFIX/bin]
# --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
# --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
# --datadir=DIR read-only architecture-independent data in DIR
# [PREFIX/share]
# --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
# --sharedstatedir=DIR modifiable architecture-independent data in DIR
# [PREFIX/com]
# --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
# --libdir=DIR object code libraries in DIR [EPREFIX/lib]
# --includedir=DIR C header files in DIR [PREFIX/include]
# --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
# --infodir=DIR info documentation in DIR [PREFIX/info]
# --mandir=DIR man documentation in DIR [PREFIX/man]
# --srcdir=DIR find the sources in DIR [configure dir or ..]
# --program-prefix=PREFIX prepend PREFIX to installed program names
# --program-suffix=SUFFIX append SUFFIX to installed program names
# --program-transform-name=PROGRAM
# run sed PROGRAM on installed program names
# --disable-strip disable stripping binaries by default
# --enable-shared[=PKGS] build shared libraries [default=yes]
# --enable-static[=PKGS] build static libraries [default=yes]
# --enable-fast-install[=PKGS] optimize for fast installation [default=yes]
# --with-gnu-ld assume the C compiler uses GNU ld [default=no]
# --disable-libtool-lock avoid locking (might break parallel builds)
all_config=--prefix=/usr --mandir=/usr/share/man --sysconfdir=${sysconfdir} --with-filterdir=${filterdir} --disable-shared
# LPRng
# --enable-unix_socket add unix socket for localhost connections
# --with-unix_socket_path=DIR unix socket path (default /var/run/lprng)
# --disable-setuid do not install client executables setuid root
# --enable-priv_ports require connections from privileged ports
# --disable-force_localhost disable force_localhost default
# --disable-require_configfiles client programs require lpd.conf, printcap
# --enable-kerberos enable kerberos support
# --enable-mit_kerberos4 enable MIT Kerberos 4 support
# --disable-kerberos_checks disable kerberos library location and checking for support
# --with-lpddir=DIR lpd executable directory (default ${sbindir})
# --with-lpd_conf_path=PATH path of lpd.conf (default: ${sysconfdir}/lpd.conf)
# --with-lpd_perms_path=PATH path of lpd.perms (default: ${sysconfdir}/lpd.perms)
# --with-printcap_path=PATH path of printcap (default ${sysconfdir}/printcap)
# --with-lpd_printcap_path=PATH path of lpd_printcap (default ${sysconfdir}/lpd_printcap)
# --with-initpath=PATH path of lpd startup file (default /usr/local/etc/rc.d/lprng.sh)
# use 'no' to disable installation and lpd startup
# --with-lockfile=PATH lockfile PATH, default /var/run/lpd
# --with-ld_libary_path=PATH LD_LIBRARY_PATH value, default /lib:/usr/lib:/usr/local/lib
# --with-filter_path=PATH filter PATH value, default /bin:/usr/bin:/usr/local/bin
# --with-userid=NAME run LPRng software as this userid, default daemon
# --with-groupid=NAME run LPRng software as this groupid, default daemon
# --with-done_jobs=N retain last N job status, default 1
# --with-done_jobs_max_age=N retain job status N seconds, default 0 - no expiry
# --with-chooser_routine=NAME load balance queue chooser routine name in user object file
# --with-order_routine=NAME queue order routine name in user object file
# --with-user_objs=NAME user specified object file
# --with-user_include=NAME include file with function prototypes for user object file
# --with-filterdir=DIR filter directory (default ${libexecdir}/filters)
LPRng_config=${all_config} --with-userid=lp --with-groupid=lp
# ifhp
# --with-ifhp_conf=path ifhp.conf config file (default \${sysconfdir}/ifhp.conf)
ifhp_config=${all_config}
# LPRngTool
# --with-printcap_path=PATH location of printcap file (default \${sysconfdir}/printcap)
# --with-spool_directory=PATH location of spool directories (default /var/spool/lpd)
# --with-ifhp_path=PATH location of ifhp filter (default: \${FILTER_DIR}/ifhp)
# --with-ifhp_conf=PATH location of ifhp configuration file (default: \${sysconfdir}/ifhp.conf)
# --with-filterdir=DIR filter directory (default \${libexecdir}/filters)
LPRngTool_config=${all_config} --with-spool_directory=/var/spool/lpd
all: unpack configure build
.PHONEY: all unpack lpd.conf lpd.perms reconfigure configure build install
unpack: ${dist}
${dist}:
set -e; \
d=`ls | grep "$@-.*tgz\$$" | tail -1` ; \
if [ "$$d" = "" ] ; then \
echo "no distribution for $@"; \
exit 1; \
fi; \
dir=`echo $$d |sed -e s/.tgz//` ; \
if [ "$$dir" = "" ] ; then \
echo "no could be extracted directory for $@" ; \
exit 1; \
fi; \
if [ ! -d $$dir ] ; then tar zxvf $$d; fi ; \
if [ ! -d $$dir ] ; then \
echo "tar failed to create $$dir"; \
exit 1; \
fi; \
rm -f $@; ln -s $$dir $@
reconfigure:
for i in ${dist}; do rm -f $$i/.configured; done;
configure:
for i in ${dist} ; do \
set -e; \
if [ ! -f $$i/.configured ] ; then \
set -e; \
case $$i in \
LPRngTool ) p="${LPRngTool_config}" ;; \
ifhp ) p="${ifhp_config}" ;; \
LPRng ) p="${LPRng_config}" ;; \
esac ; \
if (cd $$i; ./configure $$p ) ; then date > $$i/.configured; else exit 1; fi ; \
fi; \
done
build:
for i in ${dist} ${config} ; do \
if [ -f $$i/Makefile ] ; then \
( cd $$i; make SYSCONFDIR=${sysconfdir} all) ; \
fi ; \
done;
install:
for i in ${dist} ; do \
if [ -f $$i/Makefile ] ; then \
( cd $$i; make SYSCONFDIR=${sysconfdir} install); \
fi; \
done;
for i in ${filters} ; do \
install -c -m 755 -o root -g bin $$i ${filterdir}/; \
done
clean:
for i in ${dist}; do \
if [ -f $$i/Makefile ] ; then (cd $$i; make clean); fi; \
done;
realclean:
for i in ${dist}; do rm -rf $${i} $${i}-*[0-9]; done
tar: clean
if [ -x /bin/pwd ] ; then DIR=`/bin/pwd`; fi ; \
if [ -x /usr/bin/pwd ] ; then DIR=`/usr/bin/pwd`; fi ; \
echo $${DIR}; \
DIR=`echo $${DIR} | sed 's,.*/,,'`; \
cd ..; \
tar zcf $${DIR}.tgz $${DIR}; \
md5sum $${DIR}.tgz > $${DIR}.tgz.md5
@echo ""
syntax highlighted by Code2HTML, v. 0.9.1