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 | |
903a6a88 MW |
22 | OPTIMIZE = -O2 |
23 | DEBUG = -g | |
24 | WARN = -pedantic -Wall -Werror | |
25 | CFLAGS = $(OPTIMIZE) $(DEBUG) $(WARN) | |
7fbe0fb9 MW |
26 | |
27 | LD = gcc | |
28 | LDFLAGS = | |
8c43386c | 29 | LIBS = -ldvdread |
dc53ebfa MW |
30 | |
31 | CFLAGS.terminfo += -DUSE_TERMINFO | |
32 | LIBS.terminfo += -ltinfo | |
33 | ||
34 | CFLAGS.termcap += -DUSE_TERMCAP | |
35 | LIBS.termcap += -ltermcap | |
36 | ||
37 | TERMLIB ?= terminfo | |
38 | CFLAGS += $(CFLAGS.$(TERMLIB)) | |
39 | LIBS += $(LIBS.$(TERMLIB)) | |
7fbe0fb9 | 40 | |
7fbe0fb9 | 41 | PROGS += dvd-sector-copy |
dc53ebfa | 42 | dvd-sector-copy_SRCS = dvd-sector-copy.c lib.c multiprogress.c |
8c43386c | 43 | dvd-sector-copy_LIBS = -lm |
dc53ebfa MW |
44 | |
45 | PROGS += dvd-cache-keys | |
46 | dvd-cache-keys_SRCS = dvd-cache-keys.c lib.c multiprogress.c | |
47 | ||
48 | PROGS += dvd-id | |
49 | dvd-id_SRCS = dvd-id.c lib.c multiprogress.c | |
7fbe0fb9 | 50 | |
39eec43e MW |
51 | PROGS += dvd-check-keys |
52 | dvd-check-keys_SRCS = dvd-check-keys.c lib.c multiprogress.c | |
53 | dvd-check-keys_LIBS = -ldvdcss | |
54 | ||
0049c6b5 MW |
55 | PROGS += chkdvdimg |
56 | chkdvdimg_SRCS = chkdvdimg.c lib.c multiprogress.c | |
57 | ||
8b4e5018 MW |
58 | PROGS += dvd-info |
59 | dvd-info_SRCS = dvd-info.c lib.c multiprogress.c | |
60 | ||
7fbe0fb9 MW |
61 | SCRIPTS += dvdrip |
62 | SCRIPTS += dvdrip-upload | |
54c4e0c3 | 63 | SCRIPTS += dvdrip-monitor |
39eec43e MW |
64 | SCRIPTS += dvdrip-check-batch |
65 | SCRIPTS += dvdrip-retry-botched-vobs | |
7fbe0fb9 | 66 | |
f49b5c86 MW |
67 | %.o: %.c |
68 | $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $< | |
69 | CLEANFILES += *.o *.dep | |
7fbe0fb9 MW |
70 | |
71 | objects = $(addsuffix $(or $2,.o),$(basename $(filter %.c %.s %.S,$1))) | |
72 | ||
f49b5c86 MW |
73 | TARGETS += $(PROGS) |
74 | program-objects = $(call objects,$($1_SRCS),$2) | |
75 | $(PROGS): %: $$(call program-objects,$$*) $$($$*_DEPS) | |
76 | $(call v-tag,LD)$(LD) $(LDFLAGS) -o$@ \ | |
dc53ebfa | 77 | $(call program-objects,$*) $($*_LIBS) $(LIBS) |
f49b5c86 MW |
78 | |
79 | INSTALL_bin = $(addprefix inst/,$(PROGS) $(SCRIPTS)) | |
80 | install: $(INSTALL_bin) | |
81 | $(INSTALL_bin): inst/%: % | |
82 | $(V_AT)mkdir -p $(bindir) | |
83 | $(call v-tag,INST)install -m755 $* $(bindir)/ | |
7fbe0fb9 MW |
84 | |
85 | p:; : $p | |
86 | ||
87 | all: $(TARGETS) | |
f49b5c86 | 88 | clean::; rm -f $(CLEANFILES) |
7fbe0fb9 | 89 | |
f49b5c86 | 90 | -include $(foreach p,$(PROGS), $(call program-objects,$p,.dep)) |