7 CLEANFILES += $(TARGETS)
9 .SECONDEXPANSION: # sorry
12 exec_prefix = $(prefix)
13 bindir = $(exec_prefix)/bin
18 v-tag = $(call v-tag_$V,$1)
19 v-tag_0 = @printf " %-8s %s\n" "$1" "$@";
24 WARN = -pedantic -Wall -Werror
25 CFLAGS = $(OPTIMIZE) $(DEBUG) $(WARN)
31 CFLAGS.terminfo += -DUSE_TERMINFO
32 LIBS.terminfo += -ltinfo
34 CFLAGS.termcap += -DUSE_TERMCAP
35 LIBS.termcap += -ltermcap
38 CFLAGS += $(CFLAGS.$(TERMLIB))
39 LIBS += $(LIBS.$(TERMLIB))
41 PROGS += dvd-sector-copy
42 dvd-sector-copy_SRCS = dvd-sector-copy.c lib.c multiprogress.c
43 dvd-sector-copy_LIBS = -lm
45 PROGS += dvd-cache-keys
46 dvd-cache-keys_SRCS = dvd-cache-keys.c lib.c multiprogress.c
49 dvd-id_SRCS = dvd-id.c lib.c multiprogress.c
51 PROGS += dvd-check-keys
52 dvd-check-keys_SRCS = dvd-check-keys.c lib.c multiprogress.c
53 dvd-check-keys_LIBS = -ldvdcss
56 chkdvdimg_SRCS = chkdvdimg.c lib.c multiprogress.c
59 SCRIPTS += dvdrip-upload
60 SCRIPTS += dvdrip-monitor
61 SCRIPTS += dvdrip-check-batch
62 SCRIPTS += dvdrip-retry-botched-vobs
65 $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $<
66 CLEANFILES += *.o *.dep
68 objects = $(addsuffix $(or $2,.o),$(basename $(filter %.c %.s %.S,$1)))
71 program-objects = $(call objects,$($1_SRCS),$2)
72 $(PROGS): %: $$(call program-objects,$$*) $$($$*_DEPS)
73 $(call v-tag,LD)$(LD) $(LDFLAGS) -o$@ \
74 $(call program-objects,$*) $($*_LIBS) $(LIBS)
76 INSTALL_bin = $(addprefix inst/,$(PROGS) $(SCRIPTS))
77 install: $(INSTALL_bin)
78 $(INSTALL_bin): inst/%: %
79 $(V_AT)mkdir -p $(bindir)
80 $(call v-tag,INST)install -m755 $* $(bindir)/
85 clean::; rm -f $(CLEANFILES)
87 -include $(foreach p,$(PROGS), $(call program-objects,$p,.dep))