# Makefile created by mmake
########################################
NAME = quickdraw

# Files, directories, and settings
########################################
FILES =        main main_calls calc_calls color_calls misc_calls query_calls setting_calls text_calls shape_calls line_calls poly_calls
CFILES =       main.[cC] main_calls.[cC] calc_calls.[cC] color_calls.[cC] misc_calls.[cC] query_calls.[cC] setting_calls.[cC] text_calls.[cC] shape_calls.[cC] line_calls.[cC] poly_calls.[cC]
OFILES =       $(YOFILES) $(LOFILES) main.o main_calls.o calc_calls.o color_calls.o misc_calls.o query_calls.o setting_calls.o text_calls.o shape_calls.o line_calls.o poly_calls.o
DOFILES =      $(YDOFILES) $(LDOFILES) main.do main_calls.do calc_calls.do color_calls.do misc_calls.do query_calls.do setting_calls.do text_calls.do shape_calls.do line_calls.do poly_calls.do
SOFILES =      $(YSOFILES) $(LSOFILES) main.so main_calls.so calc_calls.so color_calls.so misc_calls.so query_calls.so setting_calls.so text_calls.so shape_calls.so line_calls.so poly_calls.so
OOFILES =      $(YOOFILES) $(LOOFILES) main.oo main_calls.oo calc_calls.oo color_calls.oo misc_calls.oo query_calls.oo setting_calls.oo text_calls.oo shape_calls.oo line_calls.oo poly_calls.oo
HFILES =       quickdraw_local.h.h quickdraw_pascal.h.h quickdraw.h.h
SRCFILES =     $(CFILES) $(HFILES) $(BMFILES) $(LFILES) $(YFILES)
ALLFILES =     $(SRCFILES) $(MANFILES) $(DOCFILES) $(OTHERFILES)

# compiler directives
########################################
CSFLAGS    = $(INCLUDES)
COFLAGS    = -O $(INCLUDES)
CDFLAGS    = -g $(INCLUDES)
CFLAGS     = $(COFLAGS)
LINTFLAGS  = $(INCLUDES)
LDFLAGS    = $(LOADERFLAGS) $(LIBINCLUDES)

# default make
########################################
default: lib

# ofiles
########################################
ofiles: oofiles

# commands
#######################
MMAKE    = $(JLV_ROOT)/bin/mmake
CC       = /bin/cc
CC++     = /bin/CC
AR       = ar ruv
RANLIB   = ranlib
RANLIBT  = ranlib -t
LINT     = lint
ARCHIVE  = ci -l -q -m$(NAME)
CHECKIN  = ci -u
CHECKOUT = co -l
RLOG     = rlog
TEXTFORM = $(JLV_ROOT)/bin/textform -h -w80
LC       = wc -l

# user defined section
######################

test :	test.o
	cc -g test.o quickdraw.a -lX11 -o test



#######################


# main compilation
#######################
$(NAME) $(NAME)_bin: ofiles
	$(CC) $(CFLAGS) $(OFILES) $(LDFLAGS) $(LIBS) -o $(NAME)	

# force bin
#######################
force_bin: 
	/bin/rm -f $(OFILES) $(DOFILES) $(SOFILES) $(OOFILES)
	make bin

# standard ofiles
#######################
sofiles: $(SOFILES)

# opt ofiles
#######################
oofiles: $(OOFILES)

# debug ofiles
#######################
dofiles: $(DOFILES)

# normal lib
######################
lib_standard: sofiles
	$(AR) $(NAME).a $(OFILES)
	$(RANLIB) $(NAME).a

# opt lib
#######################
lib_opt: oofiles
	$(AR) $(NAME).a $(OFILES)
	$(RANLIB) $(NAME).a

# debug lib
#######################
lib_debug: dofiles
	$(AR) $(NAME).a $(OFILES)
	$(RANLIB) $(NAME).a

# lib
#######################
lib: ofiles
	$(AR) $(NAME).a $(OFILES)
	$(RANLIB) $(NAME).a

# force lib
#######################
force_lib: 
	/bin/rm -f $(OFILES) $(DOFILES) $(SOFILES) $(OOFILES)
	make lib

# any cfile
#######################
$(FILES) : 
	$(CC) $(CSFLAGS) $*.c $(LDFLAGS) $(LIBS) -o $@

# lint
#######################
lint : 
	$(LINT) $(LINTFLAGS) -c $(CFILES)

# lint lib
#######################
lint_lib : 
	$(LINT) $(LINTFLAGS) -C$(NAME) $(CFILES)

# install bin
#######################
install_bin:
	/bin/cp $(NAME) $(BINDIR)
	chmod a+x $(BINDIR)/$(NAME)

# install lib
#######################
install_lib:
	/bin/cp $(NAME).a $(LIBDIR)
	$(RANLIBT) $(LIBPATH)

# install include
#######################
install_include:
	/bin/cp $(NAME).h $(INCDIR)
	chmod 644 $(INCDIR)/$(NAME).h

# install man
#######################
install_man: 
	/bin/cp $(MANFILES) $(MANDIR)

# install doc
#######################
install_doc: $(DOCFILES)
	/bin/cp $(DOCFILES) $(DOCDIR)

# install src
#######################
install_src: $(SRCFILES)
	/bin/cp $(SRCFILES) $(SRCDIR)

# print src
#######################
print_src:
	$(TEXTFORM) $(SRCFILES) | enscript -2r -B -p - | lpr -P$(PRINTER)

# print man
#######################
print_man:
	troff -t -man $(MANFILES) | lpr -t -P$(PRINTER)

# print doc
#######################
print_doc:
	soelim $(DOCFILES) | tbl | ditroff -me -Tpsc | psdit | lpr -P$(PRINTER)

# archive
#######################
archive:
	$(ARCHIVE) $(ALLFILES)

# checkin
#######################
checkin:
	$(CHECKIN) $(ALLFILES)

# checkout
#######################
checkout:
	$(CHECKOUT) RCS/*,v

# rlog
#######################
rlog:
	$(RLOG) RCS/*,v | more

# clean
#######################
clean:
	/bin/rm -f *.o *.do *.oo *.so *.ln

# line count
#######################
line_count:
	$(LC) $(SRCFILES)

# Makefile
##########################
Makefile: Make.seed
	$(MMAKE)

# help
#######################
help:
	@ echo 'standard targets:'
	@ echo '-----------------'
	@ echo '   $(NAME)'
	@ echo '   $(NAME)_bin'
	@ echo '   force_bin'
	@ echo '   sofiles oofiles dofiles ofiles'
	@ echo '   lib_standard lib_opt lib_debug lib'
	@ echo '   force_lib'
	@ echo '   $(FILES)'
	@ echo '   lint lint_lib'
	@ echo '   install_bin install_lib install_include'
	@ echo '   install_man install_doc install_src'
	@ echo '   print_src print_man print_doc'
	@ echo '   archive checkin checkout rlog'
	@ echo '   clean'
	@ echo '   line_count'
	@ echo '   Makefile'
	@ echo '   help'


# automatic initialization
##########################
.INIT: Makefile

# suffixes and rules
#######################
.SUFFIXES: .C .c .o .so .do .oo

.c.o: 
	$(CC) -c $(CFLAGS)  $*.c
.c.so: 
	$(CC) -c $(CSFLAGS) $*.c
	touch $*.so
.c.do: 
	$(CC) -c $(CDFLAGS) $*.c
	touch $*.do
.c.oo: 
	$(CC) -c $(COFLAGS) $*.c
	touch $*.oo
.C.o: 
	$(CC++) -c $(CFLAGS)  $*.C
.C.so: 
	$(CC++) -c $(CSFLAGS) $*.C
	touch $*.so
.C.do: 
	$(CC++) -c $(CDFLAGS) $*.C
	touch $*.do
.C.oo: 
	$(CC++) -c $(COFLAGS) $*.C
	touch $*.oo
.C.c:  
	$(CC++) -Fc $*.C > $*.c
