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 = | |
8c43386c | 26 | LIBS = -ldvdread |
dc53ebfa MW |
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 | 39 | dvd-sector-copy_SRCS = dvd-sector-copy.c lib.c multiprogress.c |
8c43386c | 40 | dvd-sector-copy_LIBS = -lm |
dc53ebfa MW |
41 | |
42 | PROGS += dvd-cache-keys | |
43 | dvd-cache-keys_SRCS = dvd-cache-keys.c lib.c multiprogress.c | |
44 | ||
45 | PROGS += dvd-id | |
46 | dvd-id_SRCS = dvd-id.c lib.c multiprogress.c | |
7fbe0fb9 | 47 | |
39eec43e MW |
48 | PROGS += dvd-check-keys |
49 | dvd-check-keys_SRCS = dvd-check-keys.c lib.c multiprogress.c | |
50 | dvd-check-keys_LIBS = -ldvdcss | |
51 | ||
0049c6b5 MW |
52 | PROGS += chkdvdimg |
53 | chkdvdimg_SRCS = chkdvdimg.c lib.c multiprogress.c | |
54 | ||
7fbe0fb9 MW |
55 | SCRIPTS += dvdrip |
56 | SCRIPTS += dvdrip-upload | |
54c4e0c3 | 57 | SCRIPTS += dvdrip-monitor |
39eec43e MW |
58 | SCRIPTS += dvdrip-check-batch |
59 | SCRIPTS += dvdrip-retry-botched-vobs | |
7fbe0fb9 | 60 | |
f49b5c86 MW |
61 | %.o: %.c |
62 | $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $< | |
63 | CLEANFILES += *.o *.dep | |
7fbe0fb9 MW |
64 | |
65 | objects = $(addsuffix $(or $2,.o),$(basename $(filter %.c %.s %.S,$1))) | |
66 | ||
f49b5c86 MW |
67 | TARGETS += $(PROGS) |
68 | program-objects = $(call objects,$($1_SRCS),$2) | |
69 | $(PROGS): %: $$(call program-objects,$$*) $$($$*_DEPS) | |
70 | $(call v-tag,LD)$(LD) $(LDFLAGS) -o$@ \ | |
dc53ebfa | 71 | $(call program-objects,$*) $($*_LIBS) $(LIBS) |
f49b5c86 MW |
72 | |
73 | INSTALL_bin = $(addprefix inst/,$(PROGS) $(SCRIPTS)) | |
74 | install: $(INSTALL_bin) | |
75 | $(INSTALL_bin): inst/%: % | |
76 | $(V_AT)mkdir -p $(bindir) | |
77 | $(call v-tag,INST)install -m755 $* $(bindir)/ | |
7fbe0fb9 MW |
78 | |
79 | p:; : $p | |
80 | ||
81 | all: $(TARGETS) | |
f49b5c86 | 82 | clean::; rm -f $(CLEANFILES) |
7fbe0fb9 | 83 | |
f49b5c86 | 84 | -include $(foreach p,$(PROGS), $(call program-objects,$p,.dep)) |