APP_NAME=disk8 APP_OBJECTS= disk8.o ops.o file.o directory.o logging.o INCFLAGS=-I ./src CFLAGS+=-Wall -g -DVERBOSE_EXTREME $(INCFLAGS) BUILD_STAMP="\"`uname -a`\"" VERSION="\"1.0\"" BUILD_DATE="\"`date` \"" CFLAGS+=-D BUILD_STAMP=$(BUILD_STAMP) -D VERSION=$(VERSION) -D BUILD_DATE=$(BUILD_DATE)\ LDFLAGS= CC=gcc OBJECTS=$(APP_OBJECTS) SRC_DIR=src APP_SOURCES=$(foreach obj, $(OBJECTS:.o=.c),$(SRC_DIR)/$(obj)) all: $(APP_NAME) clean: @echo "CLEAN" @rm -rf $(APP_NAME) *.o doxy/ $(SRC_DIR)/*~ ul_timestamp *.dep *~ doxy/timestamp: $(SRC_DIR)/*.c $(SRC_DIR)/*.h @ if [ ! -d doxy ]; then mkdir doxy; fi @doxygen doxygen.conf touch $@ doxy: doxy/timestamp %.dep : $(SRC_DIR)/%.c @ echo "DEP $<" @$(SHELL) -c "gcc -M $(INCFLAGS) $<" \ | awk 'BEGIN {N=0}{if(N==0)printf("%s %s\n","$@",$$0);else printf("%s\n", $$0);N+=1;}' > $@ %.o : $(SRC_DIR)/%.c %.dep @echo "CC $@" @$(CC) -c $(CFLAGS) -o $@ $< $(APP_NAME) : $(OBJECTS) @echo "LD $@" @$(CC) $(LDFLAGS) -o$@ $^ saustall: $(OBJECTS:.o=.dep) .PHONY: all clean default doxy .PRECIOUS: *.dep %.h %.c: @ echo "Missing file \"$@\"... No problem :-)" include $(wildcard *.dep) #include $(OBJECTS:.o=.dep)