CXX = g++ ELSA_HOME = /home/csm/Source/elsa-2005.08.22b ELKHOUND = $(ELSA_HOME)/elkhound/elkhound LIBS = libelkhound/*.o libsmbase/*.o LDFLAGS = CFLAGS = -I$(ELSA_HOME) -I$(ELSA_HOME)/elkhound -I$(ELSA_HOME)/smbase CCLD = $(CXX) $(LDFLAGS) SOURCES = \ globals.cc \ puz.cc \ puz_main.cc \ Lexer.cc \ metrics.cc OBJECTS = $(SOURCES:.cc=.o) all: puz puz: $(OBJECTS) libelkhound/.extracted libsmbase/.extracted $(CCLD) $(LIBS) -o puz $(OBJECTS) libelkhound/.extracted: mkdir -p libelkhound (cd libelkhound; ar x $(ELSA_HOME)/elkhound/libelkhound.a) touch $@ libsmbase/.extracted: mkdir -p libsmbase (cd libsmbase; ar x $(ELSA_HOME)/smbase/libsmbase.a) touch $@ %.o: %.cc $(CXX) $(CFLAGS) -c -o $@ $< puz.cc puz.h: puz.gr tokens.tok $(ELKHOUND) puz.gr tokens.tok: TokenCode.h perl $(ELSA_HOME)/elkhound/make-tok TokenCode < TokenCode.h > tokens.tok clean: rm -f *.o puz.cc puz.h tokens.tok