3 # The toolchain definitions
7 V = @ # Verbose build: make V=1
8 C = 0 # Sparsechecker build: make C=1
10 QUIET_CC = $(Q:@=@echo ' CC '$@;)$(CC)
11 QUIET_DEPEND = $(Q:@=@echo ' DEPEND '$@;)$(CC)
13 QUIET_SPARSE = $(Q:@=@echo ' SPARSE '$@;)$(SPARSE)
15 QUIET_SPARSE = @/bin/true
19 CFLAGS ?= -Os -fomit-frame-pointer
20 CFLAGS += -std=c99 -Wall -pedantic -D_BSD_SOURCE
23 SRCS = fwcutter.c md5.c
26 CFLAGS += -DFWCUTTER_VERSION_=$(VERSION)
29 .PHONY: all install clean distclean
32 DEPS = $(sort $(patsubst %.c,dep/%.d,$(1)))
33 OBJS = $(sort $(patsubst %.c,obj/%.o,$(1)))
35 # Generate dependencies
36 $(call DEPS,$(SRCS)): dep/%.d: %.c
38 $(QUIET_DEPEND) -o $@.tmp -MM -MG -MT "$@ $(patsubst dep/%.d,obj/%.o,$@)" $(CFLAGS) $< && mv -f $@.tmp $@
40 -include $(call DEPS,$(SRCS))
42 # Generate object files
43 $(call OBJS,$(SRCS)): obj/%.o:
45 $(QUIET_SPARSE) $(SPARSEFLAGS) $<
46 $(QUIET_CC) -o $@ -c $(CFLAGS) $<
50 $(BIN): $(call OBJS,$(SRCS))
51 $(QUIET_CC) $(CFLAGS) -o $(BIN) $(call OBJS,$(SRCS)) $(LDFLAGS)
54 install -d -o 0 -g 0 -m 755 $(PREFIX)/bin/
55 install -o 0 -g 0 -m 755 $(BIN) $(PREFIX)/bin/
56 install -d -o 0 -g 0 -m 755 $(PREFIX)/man/man1/
57 install -o 0 -g 0 -m 644 $(BIN).1 $(PREFIX)/man/man1/
60 -rm -Rf obj dep *.orig *.rej *~