Merge branch 'master' of git.distorted.org.uk:~mdw/publish/public-git/dvdrip
[dvdrip] / Makefile
CommitLineData
7fbe0fb9
MW
1### -*-makefile-*-
2
3all:
4clean::
f49b5c86
MW
5.PHONY: all clean
6
7CLEANFILES += $(TARGETS)
7fbe0fb9
MW
8
9.SECONDEXPANSION: # sorry
10
f49b5c86
MW
11prefix = $(HOME)
12exec_prefix = $(prefix)
13bindir = $(exec_prefix)/bin
7fbe0fb9
MW
14
15V = 0
16V_AT = $(V_AT_$V)
17V_AT_0 = @
18v-tag = $(call v-tag_$V,$1)
f49b5c86 19v-tag_0 = @printf " %-8s %s\n" "$1" "$@";
7fbe0fb9
MW
20
21CC = gcc
903a6a88
MW
22OPTIMIZE = -O2
23DEBUG = -g
24WARN = -pedantic -Wall -Werror
25CFLAGS = $(OPTIMIZE) $(DEBUG) $(WARN)
7fbe0fb9
MW
26
27LD = gcc
28LDFLAGS =
8c43386c 29LIBS = -ldvdread
dc53ebfa
MW
30
31CFLAGS.terminfo += -DUSE_TERMINFO
32LIBS.terminfo += -ltinfo
33
34CFLAGS.termcap += -DUSE_TERMCAP
35LIBS.termcap += -ltermcap
36
37TERMLIB ?= terminfo
38CFLAGS += $(CFLAGS.$(TERMLIB))
39LIBS += $(LIBS.$(TERMLIB))
7fbe0fb9 40
7fbe0fb9 41PROGS += dvd-sector-copy
dc53ebfa 42dvd-sector-copy_SRCS = dvd-sector-copy.c lib.c multiprogress.c
8c43386c 43dvd-sector-copy_LIBS = -lm
dc53ebfa
MW
44
45PROGS += dvd-cache-keys
46dvd-cache-keys_SRCS = dvd-cache-keys.c lib.c multiprogress.c
47
48PROGS += dvd-id
49dvd-id_SRCS = dvd-id.c lib.c multiprogress.c
7fbe0fb9 50
39eec43e
MW
51PROGS += dvd-check-keys
52dvd-check-keys_SRCS = dvd-check-keys.c lib.c multiprogress.c
53dvd-check-keys_LIBS = -ldvdcss
54
0049c6b5
MW
55PROGS += chkdvdimg
56chkdvdimg_SRCS = chkdvdimg.c lib.c multiprogress.c
57
8b4e5018
MW
58PROGS += dvd-info
59dvd-info_SRCS = dvd-info.c lib.c multiprogress.c
60
7fbe0fb9
MW
61SCRIPTS += dvdrip
62SCRIPTS += dvdrip-upload
54c4e0c3 63SCRIPTS += dvdrip-monitor
39eec43e
MW
64SCRIPTS += dvdrip-check-batch
65SCRIPTS += dvdrip-retry-botched-vobs
7fbe0fb9 66
f49b5c86
MW
67%.o: %.c
68 $(call v-tag,CC)$(CC) -c $(CFLAGS) -o$@ -MD -MF $*.dep $<
69CLEANFILES += *.o *.dep
7fbe0fb9
MW
70
71objects = $(addsuffix $(or $2,.o),$(basename $(filter %.c %.s %.S,$1)))
72
f49b5c86
MW
73TARGETS += $(PROGS)
74program-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
79INSTALL_bin = $(addprefix inst/,$(PROGS) $(SCRIPTS))
80install: $(INSTALL_bin)
81$(INSTALL_bin): inst/%: %
82 $(V_AT)mkdir -p $(bindir)
83 $(call v-tag,INST)install -m755 $* $(bindir)/
7fbe0fb9
MW
84
85p:; : $p
86
87all: $(TARGETS)
f49b5c86 88clean::; rm -f $(CLEANFILES)
7fbe0fb9 89
f49b5c86 90-include $(foreach p,$(PROGS), $(call program-objects,$p,.dep))