Commit | Line | Data |
---|---|---|
7fbe0fb9 MW |
1 | ### -*-makefile-*- |
2 | ||
3 | all: | |
4 | clean:: | |
f49b5c86 MW |
5 | .PHONY: all clean |
6 | ||
7 | CLEANFILES += $(TARGETS) | |
7fbe0fb9 MW |
8 | |
9 | .SECONDEXPANSION: # sorry | |
10 | ||
f49b5c86 MW |
11 | prefix = $(HOME) |
12 | exec_prefix = $(prefix) | |
13 | bindir = $(exec_prefix)/bin | |
7fbe0fb9 MW |
14 | |
15 | V = 0 | |
16 | V_AT = $(V_AT_$V) | |
17 | V_AT_0 = @ | |
18 | v-tag = $(call v-tag_$V,$1) | |
f49b5c86 | 19 | v-tag_0 = @printf " %-8s %s\n" "$1" "$@"; |
7fbe0fb9 MW |
20 | |
21 | CC = gcc | |
22 | CFLAGS = -O2 -g -pedantic -Wall -Werror | |
23 | ||
24 | LD = gcc | |
25 | LDFLAGS = | |
dc53ebfa MW |
26 | LIBS = -ldvdread -lm |
27 | ||
28 | CFLAGS.terminfo += -DUSE_TERMINFO | |
29 | LIBS.terminfo += -ltinfo | |
30 | ||
31 | CFLAGS.termcap += -DUSE_TERMCAP | |
32 | LIBS.termcap += -ltermcap | |
33 | ||
34 | TERMLIB ?= terminfo | |
35 | CFLAGS += $(CFLAGS.$(TERMLIB)) | |
36 | LIBS += $(LIBS.$(TERMLIB)) | |
7fbe0fb9 | 37 | |
7fbe0fb9 | 38 | PROGS += dvd-sector-copy |
dc53ebfa MW |
39 | dvd-sector-copy_SRCS = dvd-sector-copy.c lib.c multiprogress.c |
40 | ||
41 | PROGS += dvd-cache-keys | |
42 | dvd-cache-keys_SRCS = dvd-cache-keys.c lib.c multiprogress.c | |
43 | ||
44 | PROGS += dvd-id | |
45 | dvd-id_SRCS = dvd-id.c lib.c multiprogress.c | |
7fbe0fb9 MW |
46 | |
47 | SCRIPTS += dvdrip | |
48 | SCRIPTS += dvdrip-upload | |
49 | ||
f49b5c86 MW |
50 | %.o: %.c |
51 | $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $< | |
52 | CLEANFILES += *.o *.dep | |
7fbe0fb9 MW |
53 | |
54 | objects = $(addsuffix $(or $2,.o),$(basename $(filter %.c %.s %.S,$1))) | |
55 | ||
f49b5c86 MW |
56 | TARGETS += $(PROGS) |
57 | program-objects = $(call objects,$($1_SRCS),$2) | |
58 | $(PROGS): %: $$(call program-objects,$$*) $$($$*_DEPS) | |
59 | $(call v-tag,LD)$(LD) $(LDFLAGS) -o$@ \ | |
dc53ebfa | 60 | $(call program-objects,$*) $($*_LIBS) $(LIBS) |
f49b5c86 MW |
61 | |
62 | INSTALL_bin = $(addprefix inst/,$(PROGS) $(SCRIPTS)) | |
63 | install: $(INSTALL_bin) | |
64 | $(INSTALL_bin): inst/%: % | |
65 | $(V_AT)mkdir -p $(bindir) | |
66 | $(call v-tag,INST)install -m755 $* $(bindir)/ | |
7fbe0fb9 MW |
67 | |
68 | p:; : $p | |
69 | ||
70 | all: $(TARGETS) | |
f49b5c86 | 71 | clean::; rm -f $(CLEANFILES) |
7fbe0fb9 | 72 | |
f49b5c86 | 73 | -include $(foreach p,$(PROGS), $(call program-objects,$p,.dep)) |