| 1 | |
| 2 | APP_NAME=disk8 |
| 3 | APP_OBJECTS= disk8.o ops.o file.o directory.o logging.o |
| 4 | |
| 5 | INCFLAGS=-I ./src |
| 6 | |
| 7 | CFLAGS+=-Wall -g -DVERBOSE_EXTREME $(INCFLAGS) |
| 8 | |
| 9 | BUILD_STAMP="\"`uname -a`\"" |
| 10 | VERSION="\"1.0\"" |
| 11 | BUILD_DATE="\"`date` \"" |
| 12 | |
| 13 | CFLAGS+=-D BUILD_STAMP=$(BUILD_STAMP) -D VERSION=$(VERSION) -D BUILD_DATE=$(BUILD_DATE)\ |
| 14 | |
| 15 | LDFLAGS= |
| 16 | |
| 17 | CC=gcc |
| 18 | |
| 19 | OBJECTS=$(APP_OBJECTS) |
| 20 | |
| 21 | SRC_DIR=src |
| 22 | |
| 23 | APP_SOURCES=$(foreach obj, $(OBJECTS:.o=.c),$(SRC_DIR)/$(obj)) |
| 24 | |
| 25 | all: $(APP_NAME) |
| 26 | |
| 27 | clean: |
| 28 | @echo "CLEAN" |
| 29 | @rm -rf $(APP_NAME) *.o doxy/ $(SRC_DIR)/*~ ul_timestamp *.dep *~ |
| 30 | |
| 31 | |
| 32 | doxy/timestamp: $(SRC_DIR)/*.c $(SRC_DIR)/*.h |
| 33 | @ if [ ! -d doxy ]; then mkdir doxy; fi |
| 34 | @doxygen doxygen.conf |
| 35 | touch $@ |
| 36 | |
| 37 | doxy: doxy/timestamp |
| 38 | |
| 39 | |
| 40 | %.dep : $(SRC_DIR)/%.c |
| 41 | @ echo "DEP $<" |
| 42 | @$(SHELL) -c "gcc -M $(INCFLAGS) $<" \ |
| 43 | | awk 'BEGIN {N=0}{if(N==0)printf("%s %s\n","$@",$$0);else printf("%s\n", $$0);N+=1;}' > $@ |
| 44 | |
| 45 | %.o : $(SRC_DIR)/%.c %.dep |
| 46 | @echo "CC $@" |
| 47 | @$(CC) -c $(CFLAGS) -o $@ $< |
| 48 | |
| 49 | $(APP_NAME) : $(OBJECTS) |
| 50 | @echo "LD $@" |
| 51 | @$(CC) $(LDFLAGS) -o$@ $^ |
| 52 | |
| 53 | saustall: $(OBJECTS:.o=.dep) |
| 54 | |
| 55 | .PHONY: all clean default doxy |
| 56 | |
| 57 | .PRECIOUS: *.dep |
| 58 | |
| 59 | %.h %.c: |
| 60 | @ echo "Missing file \"$@\"... No problem :-)" |
| 61 | |
| 62 | |
| 63 | include $(wildcard *.dep) |
| 64 | #include $(OBJECTS:.o=.dep) |