SHELL = /bin/sh CC = gcc CXX = g++ INCDIRS = -I$(CURDIR) LDLIBS = -lm OPTIMIZE = 3 CFLAGS = -Wall -O$(OPTIMIZE) $(INCDIRS) -g CXXFLAGS = -Wall -O$(OPTIMIZE) $(INCDIRS) -g LDFLAGS = -O$(OPTIMIZE) BINDIR = $(CURDIR)/../bin EXECS = $(BINDIR)/bandpass EXECS += $(BINDIR)/coincide EXECS += $(BINDIR)/detect EXECS += $(BINDIR)/mask EXECS += $(BINDIR)/segment EXECS += $(BINDIR)/select EXECS += $(BINDIR)/threshold EXECS += $(BINDIR)/veto INCLUDES = $(sort $(wildcard $(CURDIR)/*.h) $(wildcard $(CURDIR)/*.hh)) ALLSOURCES = $(sort $(wildcard $(CURDIR)/*.c) $(wildcard $(CURDIR)/*.cc)) ALLDEPENDS = $(addsuffix .d, $(basename $(ALLSOURCES))) ALLOBJECTS = $(addsuffix .o, $(basename $(ALLSOURCES))) MAINS = $(addprefix $(CURDIR)/, \ $(notdir $(addsuffix .c, $(EXECS)) $(addsuffix .cc, $(EXECS)))) SOURCES = $(filter-out $(MAINS), $(ALLSOURCES)) DEPENDS = $(addsuffix .d, $(basename $(SOURCES))) OBJECTS = $(addsuffix .o, $(basename $(SOURCES))) .DELETE_ON_ERROR: .PHONY: all exec clean all: exec exec: $(EXECS) $(EXECS): $(ALLOBJECTS) mkdir -p $(BINDIR); \ $(CXX) $(LDFLAGS) -o $@ $(CURDIR)/$(notdir $@).o $(OBJECTS) $(LDLIBS) clean: -rm -f $(EXECS) > /dev/null 2>&1 -rm -f $(ALLOBJECTS) > /dev/null 2>&1 -rm -f $(ALLDEPENDS) > /dev/null 2>&1 -rm -f $(CURDIR)/*~ > /dev/null 2>&1 -rm -f $(CURDIR)/core > /dev/null 2>&1 INDEPENDENTS = clean ifneq ($(strip $(filter-out $(INDEPENDENTS),$(MAKECMDGOALS))),) -include $(ALLDEPENDS) endif ifeq ($(strip $(MAKECMDGOALS)),) -include $(ALLDEPENDS) endif .SUFFIXES: .SUFFIXES: .c .cc .h .hh .o .d %.d: %.c set -e; $(CC) -MM -MG $(CPPFLAGS) $(CFLAGS) $< \ | sed 's/\($(*F)\)\.o[ :]*/\1.o $(@F) : /g' > $@; \ [ -s $@ ] || rm -f $@ > /dev/null 2>&1 %.d: %.cc set -e; $(CXX) -MM -MG $(CPPFLAGS) $(CXXFLAGS) $< \ | sed 's/\($(*F)\)\.o[ :]*/\1.o $(@F) : /g' > $@; \ [ -s $@ ] || rm -f $@ > /dev/null 2>&1