#
# Makefile to compile the CadMac library.
#
# Four versions of the library may be compiled:
#
#	libmac.a	- generic, two byte integer
#	libLmac.a	- four byte integer
#	libmacnsc.a	- two byte integer with NSC floating point.
#	libLmacnsc.a	- four byte integer with NSC floating point.
#
#	make		- just makes the generic libmac.a
#	make all	- compiles all 4 versions.
#	make <LIBNAME>	- compiles the given library.
#	make clean	- removes the libraries, *.o, etc.
#	make depend	- create a new dependency list in each makefile.
#
# To make a non-qsh version of each of these, you must define on the 
# make command line, "GLOBFLAGS=-DNO_QSH" (QSH is defined in the header
# file include/mac/global.h).  This actually only affects the module
# QuickDraw/GrafPort.c; the code should probably be fixed so that an
# application may use the same library whether it is executed through
# the qsh or not.
#

MAIN_DIR =	..
INCLUDE_DIR =	../$(MAIN_DIR)/include
INCLUDES =	-I$(INCLUDE_DIR) -I$(INCLUDE_DIR)/mac
MACLIB_DIR =	.

MACLIB =	libmac.a
ENTRY =		libmac

LIBS =		libmac.a libmac.debug.a libmac.multi.a libLmacnsc.a

FRC =		FRC
.PRECIOUS:	$(LIBS)

AFWSDEVOPT = -O
AFWSDEVDEBUGOPT = -g
AFWSOPT = -O
MULTIOPT = -O

CADMUSFLAGS =   
AFWSDEVFLAGS =  -DAFWS 
AFWSFLAGS =  -DAFWS -DAFWSBUG
MULTIFLAGS =  -DAFWS -DAFWSBUG -DAFWSMULTI

libmac.a libmac mac:			$(FRC)
	@echo
	@echo "*** Making >>> libmac.a <<<  (AFWS Dev Env)   [`date`]"
	@echo
	-rm -f libmac.a
	-make "GLOBFLAGS=$(AFWSDEVFLAGS)" "ENTRY=mac" "OPT=$(AFWSDEVOPT)" lib
	-ranlib libmac.a
	@echo "*** Done making libmac.a   [`date`]"

libmac.debug.a libmac.debug mac.debug:			$(FRC)
	@echo
	@echo "*** Making >>> libmac.debug.a <<<  (AFWS Dev Env w/ Debug)   [`date`]"
	@echo
	-rm -f libmac.debug.a
	-make "GLOBFLAGS=$(AFWSDEVFLAGS)" "ENTRY=mac.debug" "OPT=$(AFWSDEVDEBUGOPT)" lib
	-ranlib libmac.debug.a
	@echo "*** Done making libmac.debug.a   [`date`]"

libmac.afws.a libmac.afws.a mac.afws:			$(FRC)
	@echo
	@echo "*** Making >>> libmac.afws.a <<<  (AFWS Single Process)   [`date`]"
	@echo
	-rm -f libmac.afws.a
	-make "GLOBFLAGS=$(AFWSFLAGS)" "ENTRY=mac.afws" "OPT=$(AFWSOPT)" lib
	-ranlib libmac.afws.a
	@echo "*** Done making libmac.afws.a   [`date`]"

libmac.afwsdebug.a libmac.afwsdebug mac.afwsdebug:			$(FRC)
	@echo
	@echo "*** Making >>> libmac.afwsdebug.a <<<  (AFWS Single w/ Debug)   [`date`]"
	@echo
	-rm -f libmac.afwsdebug.a
	-make "GLOBFLAGS=$(AFWSFLAGS)" "ENTRY=mac.debug" "OPT=$(AFWSOPT) lib
	-ranlib libmac.afwsdebug.a
	@echo "*** Done making libmac.afwsdebug.a   [`date`]"

libmac.multi.a libmac.multi mac.multi:		$(FRC)
	@echo
	@echo "*** Making >>> libmac.multi.a <<<  (AFWS Multi Process)   [`date`]"
	@echo
	-rm -f libmac.multi.a
	-make "GLOBFLAGS=$(MULTIFLAGS)" "ENTRY=mac.multi" "OPT=$(MULTIOPT)" lib
	-ranlib libmac.multi.a
	@echo "*** Done making libmac.multi.a   [`date`]"

all:
	@echo
	@echo "*** Making all four CadMac libraries   [`date`]"
	@-make "GLOBFLAGS=$(GLOBFLAGS)" mac
	@-make "GLOBFLAGS=$(GLOBFLAGS)" mac.debug
	@-make "GLOBFLAGS=$(GLOBFLAGS)" mac.afws
	@-make "GLOBFLAGS=$(GLOBFLAGS)" mac.afwsdebug
	@-make "GLOBFLAGS=$(GLOBFLAGS)" mac.multi
	@echo "*** Done making all four libraries   [`date`]"

lib:
	-cd ControlMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd DialogMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd EventMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd FileMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd FontMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd LayerMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd MemMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd MenuMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd QuickDraw ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd RMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd SegLdr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd ScrapMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd StdFile ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd TextEdit ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd UtilMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"
	-cd WindowMgr ; make "GLOBFLAGS=$(GLOBFLAGS)" $(ENTRY) "OPT=$(OPT)"


depend:
		make "ENTRY=depend" lib

clean:
		-/bin/rm -f *.a *.o a.out core
		make "ENTRY=clean" lib

lint:
		-csh -c 'lint.rpd -hxa $(INCLUDES) [A-LN-Z]*/*.c'

tag:
		ctags [A-Z]*/*.[ch] $(INCLUDE_DIR)/mac/*.h >& /dev/null
		-cd ControlMgr;	ctags *.[ch] >& /dev/null
		-cd DialogMgr;  ctags *.[ch] >& /dev/null
		-cd EventMgr;	ctags *.[ch] >& /dev/null
		-cd FileMgr;	ctags *.[ch] >& /dev/null
		-cd FontMgr;	ctags *.[ch] >& /dev/null
		-cd LayerMgr;	ctags *.[ch] >& /dev/null
		-cd MemMgr;	ctags *.[ch] >& /dev/null
		-cd MenuMgr;	ctags *.[ch] >& /dev/null
		-cd QuickDraw;	ctags *.[ch] >& /dev/null
		-cd RMgr;	ctags *.[ch] >& /dev/null
		-cd SegLdr;	ctags *.[ch] >& /dev/null
		-cd ScrapMgr;   ctags *.[ch] >& /dev/null
		-cd StdFile;	ctags *.[ch] >& /dev/null
		-cd TextEdit;   ctags *.[ch] >& /dev/null
		-cd UtilMgr;	ctags *.[ch] >& /dev/null
		-cd WindowMgr;	ctags *.[ch] >& /dev/null
		-cd $(INCLUDE_DIR)/mac;	ctags *.[ch] >& /dev/null
		fixtags tags */tags

everything:	depend tag all lint

$(FRC):		;

########################################################################
# CADMUS Release Engineering
########################################################################

SHIP_DIR =	$(MAIN_DIR)/ship
RELENGINSTALL =	$(MAIN_DIR)/mytools/bin/rinstall -v -c -f -r $(SHIP_DIR)

RELENG_build:	all

RELENG_install:
		$(RELENGINSTALL) /usr/lib -m 444 -o root -g root -i \
			libmac.a \
			libLmac.a \
			libmacnsc.a \
			libLmacnsc.a
		$(RELENGINSTALL) /usr/lib/cadmac -m 555 -o root -g root -i \
			data/*.bin
		$(RELENGINSTALL) /usr/lib/cadmac -m 666 -o root -g root -i \
			data/*.res

RELENG_clean:	clean
