#
# ~ppr/src/Makefile
# Copyright 1995, 1996, 1997, Trinity College Computing Center.
# Written by David Chappell.
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted, provided
# that the above copyright notice appear in all copies and that both that
# copyright notice and this permission notice appear in supporting
# documentation.  This software is provided "as is" without express or
# implied warranty.
#
# Last modified 19 March 1997.
#

#
# Master Makefile for the PPR spooling system.
# Make the entire thing.
#

# We have to pull this in because at some point we
# need to print the name of PPR's home directory.
include include/global.mk

# This makes everything but doesn't install it.  I don't know 
# why you would want to do that, but you can.
all:
	@echo "Making library"
	@( cd libppr && $(MAKE) )
	@echo "Making database library"
	@( cd libpprdb/$(USER_DBM) && $(MAKE) )
	@echo "Making print daemon"
	@( cd pprd && $(MAKE) )
	@echo "Making print daemon printer driving program"
	@( cd pprdrv && $(MAKE) )
	@echo "Making TrueType font indexer"
	@( cd indexttf && $(MAKE) )
	@echo "Making printer interfaces"
	@( cd interfaces && $(MAKE) )
	@echo "Making responders"
	@( cd responders && $(MAKE) )
	@echo "Making commentators"
	@( cd commentators && $(MAKE) )
	@echo "Making ppr utility"
	@( cd ppr && $(MAKE) )
	@echo "Making ppop utility"
	@( cd ppop && $(MAKE) )
	@echo "Making ppad utility"
	@( cd ppad && $(MAKE) )
	@echo "Making ppuser utility"
	@( cd ppuser && $(MAKE) )
	@echo "Making procedure sets"
	@( cd procsets && $(MAKE) )
	@echo "Making line printer emulator"
	@( cd filter_lp && $(MAKE) )
	@echo "Making dot matrix printer emulator"
	@( cd dotmatrix && $(MAKE) )
	@echo "Making miscelaineous filters"
	@( cd misc_filters && $(MAKE) )
	@echo "Making Printer Access Protocol server"
	@( cd papsrv && $(MAKE) )
	@echo "Making install/remove programs"
	@( cd installprogs && $(MAKE) )
	@echo "Making PPD files"
	@( cd ppd && $(MAKE) )
	@echo "Making encodings"
	@( cd encodings && $(MAKE) )
	@echo "Making LPR server"
	@( cd lprsrv && $(MAKE) )
	@echo "Making miscelaineous programs"
	@( cd misc && $(MAKE) )
	@echo "Making programs in fonts directory"
	@( cd fonts && $(MAKE) )
	@echo "Making fakers"
	@( cd fakers && $(MAKE) )
	@echo
	@echo "Done making binaries.  You must now run \"make install\"."
	@echo

# Make the programs and install them.
install:
	@echo "Making install directories"
	./installprogs/makedirs.sh
	@echo "Making library"
	@( cd libppr && $(MAKE) install )
	@echo "Making database library"
	@( cd libpprdb/$(USER_DBM) && $(MAKE) install )
	@echo "Installing print daemon"
	@( cd pprd && $(MAKE) install )
	@echo "Installing print daemon printer driver"
	@( cd pprdrv && $(MAKE) install )
	@echo "Installing TrueType font indexer"
	@( cd indexttf && $(MAKE) install )
	@echo "Installing printer interfaces"
	@( cd interfaces && $(MAKE) install )
	@echo "Installing responders"
	@( cd responders && $(MAKE) install )
	@echo "Installing commentators"
	@( cd commentators && $(MAKE) install )
	@echo "Installing ppr utility"
	@( cd ppr && $(MAKE) install )
	@echo "Installing ppop utility"
	@( cd ppop && $(MAKE) install )
	@echo "Installing ppad utility"
	@( cd ppad && $(MAKE) install )
	@echo "Installing ppuser utility"
	@( cd ppuser && $(MAKE) install )
	@echo "Installing procedure sets"
	@( cd procsets && $(MAKE) install )
	@echo "Installing line printer emulator"
	@( cd filter_lp && $(MAKE) install )	
	@echo "Installing dot matrix printer emulator"
	@( cd dotmatrix && $(MAKE) install )
	@echo "Installing miscelaineous filters"
	@( cd misc_filters && $(MAKE) install )
	@echo "Installing Printer Access Protocol server"
	@( cd papsrv && $(MAKE) install )
	@echo "Installing install/remove programs"
	@( cd installprogs && $(MAKE) install )
	@echo "Installing PPD files"
	@( cd ppd && $(MAKE) install )
	@echo "Installing encodings"
	@( cd encodings && $(MAKE) install )
	@echo "Installing LPR server"
	@( cd lprsrv && $(MAKE) install )
	@echo "Installing miscelaineous programs"
	@( cd misc && $(MAKE) install )
	@echo "Installing fonts"
	@( cd fonts && $(MAKE) install )
	@echo "Installing fakers"
	@( cd fakers && $(MAKE) install )
	@echo
	@echo "Installation of binaries and support files done,"
	@echo "you must now run $(HOMEDIR)/install/fixup as root."
	@echo

# Remove editor backup files, object files, and executables
# from the source tree.
clean:
	( cd libppr && $(MAKE) clean )
	( cd libpprdb/none && $(MAKE) clean )
	( cd libpprdb/gdbm && $(MAKE) clean )
	( cd pprd && $(MAKE) clean )
	( cd pprdrv && $(MAKE) clean )
	( cd indexttf && $(MAKE) clean )
	( cd interfaces && $(MAKE) clean )
	( cd responders && $(MAKE) clean )
	( cd commentators && $(MAKE) clean )
	( cd ppr && $(MAKE) clean )
	( cd ppop && $(MAKE) clean )
	( cd ppad && $(MAKE) clean )
	( cd ppuser && $(MAKE) clean )
	( cd procsets && $(MAKE) clean )
	( cd filter_lp && $(MAKE) clean )	
	( cd dotmatrix && $(MAKE) clean )
	( cd misc_filters && $(MAKE) clean )
	( cd papsrv && $(MAKE) clean )
	( cd installprogs && $(MAKE) clean )
	( cd ppd && $(MAKE) clean )
	( cd encodings && $(MAKE) clean )
	( cd lprsrv && $(MAKE) clean )
	( cd misc && $(MAKE) clean )
	( cd fonts && $(MAKE) clean )
	( cd fakers && $(MAKE) clean )
	$(RMF) include/*~ include/*.bak
	$(RMF) *~ *.bak *.bck
	$(RMF) ../ppr-src-*.tar.gz
	@echo
	@echo "All clean."
	@echo

# This one not only does what "make clean" does, it also restores
# "include/global.mk" to the unconfigured version.
realclean: clean
	$(CP) include/global.mk.unconfigured include/global.mk
	@echo
	@echo "Configure undone."
	@echo

# Pack the source up as an archive.  You must do a "make clean"
# before this if you don't want to pack up a lot of junk.
dist: realclean
	( cd ..; tar cf - ppr-1.30 | gzip --best >~ppr/ppr-src-1.30.tar.gz )

# Make a binary distribution
bindist:
	( cd installprogs; make_bindist )

# end of file
