#	$Id: Makefile,v 1.7 1995/10/01 14:44:11 crash Exp crash $
#

SHELL = /bin/ksh
include ../.gmake

REVIEW_LAB_ERRORS = \
	rev1conv \
	rev1synt \
# Nothing

include Makefile.inc

.PHONY: all working_code error_code
.PHONY: up2date copyCPP copyH copyC copyTXT

all:		working_code error_code
working_code:	$(SINGLE_FILE_BIN) $(MULTI_FILE_BIN)
error_code:	$(REVIEW_LAB_ERRORS)

up2date: working_code copyCPP copyH copyC copyTXT
	cp $(SINGLE_FILE_COPY) ..
	cp $(MULTI_FILE_COPY) ..


copyCPP:	$(patsubst %,../%,$(wildcard *.cpp))
copyH:		$(patsubst %,../%,$(wildcard *.h))
copyC:		$(patsubst %,../%,$(wildcard *.c))
copyTXT:	$(patsubst %,../%,$(wildcard *.txt))

../%.c:	%.c
	test $? -nt $@ && sed -f .sed < $? > $@
../%.cpp:	%.cpp
	test $? -nt $@ && sed -f .sed < $? > $@
../%.h:	%.h
	test $? -nt $@ && sed -f .sed < $? > $@
../operator.txt: operator.txt
	test $? -nt $@ && tbl $? > $@
../rev1loop.txt: rev1loop.txt
	test $? -nt $@ && cp $? $@

clean:
	rm -f $(SINGLE_FILE_BIN) $(MULTI_FILE_BIN) *.o
	rm -rf *.dSYM
	(cd ..; rm -f up2date $(SINGLE_FILE_BIN) $(MULTI_FILE_BIN) *.o)

ci:
	ci -l Makefile README *.[cht]*

demo-error: demo-error.cpp
	@echo -e "\nMakefile: Should be an error in the next compile!!!"
	$(CXX) $(CXXFLAGS) $< -o $@ && exit 1 || exit 0

rev1synt: rev1synt.c
	@echo -e "\nMakefile: Should be an error in the next compile!!!"
	$(CC) $(CFLAGS) $< -o $@ -lm && exit 1 || exit 0

rev1conv: rev1conv.c
	$(CC) $(CFLAGS) $< -o $@ -lm

macros: macros.cpp
	@echo -e "\nMakefile: Should be an error in the next compile!!!"
	$(CXX) $(CXXFLAGS) $< -o $@ && exit 1 || exit 0

empl1.o bossmain.o: empl1.h
boss1.o bossmain.o: boss1.h
bossmain: empl1.o boss1.o bossmain.o
	$(CXX) $(CXXFLAGS) -o $@ $^

animal1.o main1.o: animal1.h
main1: animal1.o main1.o
	$(CXX) $(CXXFLAGS) -o $@ $^

animal2.o main2.o: animal2.h
main2: animal2.o main2.o
	$(CXX) $(CXXFLAGS) -o $@ $^

animal3.o main3.o: animal3.h
main3: animal3.o main3.o
	$(CXX) $(CXXFLAGS) -o $@ $^

demo-dmem1.o demo-dmem2.o demo-dmem3.o: demo-dmem.h
demo-dmem: demo-dmem1.o demo-dmem2.o demo-dmem3.o
	$(CXX) $(CXXFLAGS) -o $@ $^

demo-new: demo-new.o animal3.o
	$(CXX) $(CXXFLAGS) -o $@ $^

demo-ptr: demo-ptr1.o demo-ptr2.o
	$(CXX) $(CXXFLAGS) -o $@ $^

phonelist.o phonemain.o: record.h phonelist.h sllist.h
phonemain: phonemain.o phonelist.o
	$(CXX) $(CXXFLAGS) $^ -o $@

%:	%.cpp
	$(CXX) $(CXXFLAGS) $< -o $@

%.o:	%.cpp
	$(CXX) $(CXXFLAGS) -c $< -o $@

floppy:
	mmd a:source.lec
	mcopy -t Makefile *.[cht]* a:source.lec

pkzip:
	@zip -l9 ../../zip/source README Makefile *.[cht]*
