srcdirs= \ . CC=gcc CXX=g++ #MAINFILE = $(wildcard $(srctop)/*.cpp) DIRSOURCE1:= $(foreach dir,$(srcdirs),$(wildcard $(dir)/*.cc)) DIRSOURCE2:= $(foreach dir,$(srcdirs),$(wildcard $(dir)/*.cpp)) DIRSOURCE3:= $(foreach dir,$(srcdirs),$(wildcard $(dir)/*.c)) INCLDUES:= $(foreach dir,$(srcdirs),$(wildcard $(dir)/*.hh)) TESTSOURCE = $(wildcard *.cc) $(wildcard *.c) TESTOBJS = $(DIRSOURCE1:%.cc=%.o) $(DIRSOURCE2:%.cpp=%.o) $(DIRSOURCE3:%.c=%.o) INCLUDES = $(wildcard *.hh) TESTEXECS = sw TESTDEPENDFILE = GLOBALLDFLAGS = GLOBALCPPFLAGS = CODETAG=TAGS all: $(TESTEXECS) $(CODETAG) $(CODETAG): $(TESTSOURCE) $(INCLDUES) etags $(TESTSOURCE) $(INCLDUES) $(TESTEXECS): $(TESTDEPENDFILE) $(TESTOBJS) $(CXX) -g $(TESTOBJS) $(LDFLAGS) $(GLOBALLDFLAGS) -o $@ %.o: %.cc $(CXX) -g -c $< $(CPPFLAGS) $(GLOBALCPPFLAGS) -o $@ %.o: %.cpp $(CXX) -g -c $< $(CPPFLAGS) $(GLOBALCPPFLAGS) -o $@ %.o: %.c $(CC) -g -c $< $(CPPFLAGS) $(GLOBALCPPFLAGS) -o $@ clean: @-rm $(TESTOBJS) @-rm $(TESTEXECS) @-rm $(CODETAG) rmobj: @-rm $(TESTOBJS) @-rm $(CODETAG)