Makefile (828B)
1 TARGET?= 2 3 BIN=sfinx 4 5 SRC:= 6 SRC+=$(wildcard src/*.c) 7 SRC+=$(wildcard src/*/*.c) 8 SRC+=$(wildcard src/*/*/*.c) 9 10 CFLAGS?=-Wall -Wextra -O2 11 LDFLAGS?= 12 13 # Drop unreferenced code: dependencies export whole libraries, of which we use a part 14 CFLAGS +=-ffunction-sections -fdata-sections 15 LDFLAGS+=-Wl,--gc-sections 16 17 INCLUDES:= 18 INCLUDES+=-I src 19 20 include lib/.dep/config.mk 21 22 # Target-specific overrides, optional. 23 # Supplied by target/<target>/Makefile.target 24 -include Makefile.target 25 26 CFLAGS+=$(INCLUDES) 27 28 OBJ:=$(SRC:.c=.o) 29 30 .PHONY: default 31 default: $(BIN) 32 33 %.o: %.c $(LIBS) 34 $(CC) $(CFLAGS) $(@:.o=.c) -D__NAME=\"$(BIN)\" -D__TARGET=\"$(TARGET)\" -c -o $@ 35 36 $(BIN): $(OBJ) 37 $(CC) $(CFLAGS) $(OBJ) $(LDFLAGS) -o $@ 38 39 .PHONY: clean 40 clean: 41 rm -f $(OBJ) $(BIN) 42 43 .PHONY: install 44 install: $(BIN) 45 install -Dm0755 $(BIN) $(DESTDIR)/usr/bin/$(BIN)