Annotation of multiplexer/makefile, revision 1.16
1.11 oskar 1: #!/usr/bin/make
1.1 oskar 2: # make iso 13818-1 stream multiplexer
3:
1.16 ! oskar 4: VERSION = 1.1.3
1.11 oskar 5: DATE = $(shell date +%Y-%m-%d)
6:
7: PREFIX ?= /usr/local
8: INCLUDEDIR = $(PREFIX)/include
9: BINDIR = $(PREFIX)/bin
10: MAN1DIR = $(PREFIX)/share/man/man1
1.1 oskar 11:
1.8 oskar 12: CFLAGS = -O -c -Wall -I$(INCLUDEDIR)
1.1 oskar 13: CC = gcc
14:
1.10 oskar 15: OBJS_G = dispatch.o init.o error.o crc32.o input.o output.o command.o \
16: global.o descref.o splitpes.o splitps.o splitts.o splice.o
1.1 oskar 17: OBJ_ts = splicets.o
18: OBJ_ps = spliceps.o
1.2 oskar 19: OBJS_S = $(OBJ_ts) $(OBJ_ps)
20: OBJS = $(OBJS_G) $(OBJS_S)
1.6 jacob 21: OBJS_O = repeatts.o showts.o
1.9 oskar 22: OBJS_TS2PES = ts2pes.o ts2pesdescr.o
23: OBJS_PES2ES = pes2es.o crc16.o
1.10 oskar 24: OBJS_EN300468TS = en300468ts.o
1.11 oskar 25: ALLOBJS = $(OBJS) $(OBJS_O) $(OBJS_TS2PES) $(OBJS_PES2ES) $(OBJS_EN300468TS)
1.1 oskar 26:
27: TRGSTEM = iso13818
1.5 oskar 28: TARGETS_I = $(TRGSTEM)ts $(TRGSTEM)ps
1.6 jacob 29: TARGETS_O = repeatts showts
1.9 oskar 30: TARGET_TS2PES = ts2pes
31: TARGET_PES2ES = pes2es
1.10 oskar 32: TARGET_EN300468TS = en300468ts
33: TARGETS = $(TARGETS_O) $(TARGETS_I) $(TARGET_TS2PES) $(TARGET_PES2ES) \
34: $(TARGET_EN300468TS)
1.1 oskar 35:
1.11 oskar 36: HEADERS = dispatch.h error.h crc32.h input.h output.h command.h global.h \
37: descref.h splitpes.h splitps.h splitts.h splice.h pes.h ps.h ts.h \
38: makefile
39: DEFS_INCSRC = en300468ts.table en300468ts.descr
40: DEFS_MANOBJ = $(addsuffix .o,$(DEFS_INCSRC))
41: DEFS_INCDEF = $(addsuffix .h,$(DEFS_INCSRC))
42: MAN1 = $(addsuffix .1,$(TARGETS_I) repeatts)
43: MANGEN = $(addsuffix .1,$(TARGET_EN300468TS))
44: MANSRC = $(addsuffix .src,$(MANGEN))
45: MAN = $(MAN1) $(MANGEN)
46: LICENCE = COPYING
47: SOURCES = $(addsuffix .c,$(basename $(ALLOBJS))) \
48: $(addsuffix .h,$(basename $(OBJS_TS2PES) $(OBJS_PES2ES) $(OBJS_S)))
1.14 oskar 49: ALLSRC = $(HEADERS) $(SOURCES) $(LICENCE) $(DEFS_INCSRC) $(DEFS_INCDEF)
1.11 oskar 50:
1.13 oskar 51: .PHONY: all clean install install_bin install_man uninstall targz
1.1 oskar 52:
1.11 oskar 53: all: $(TARGETS) $(MANGEN)
1.1 oskar 54:
1.11 oskar 55: # kill stupid implicit rule:
56: %: %.o
1.1 oskar 57:
1.5 oskar 58: $(TARGETS_I): $(OBJS)
1.1 oskar 59: $(CC) -o $@ $(OBJS_G) $($(subst $(TRGSTEM),OBJ_,$@))
60:
1.6 jacob 61: $(TARGETS_O): % : %.o
62: $(CC) -o $* $@.o
1.5 oskar 63:
1.9 oskar 64: $(TARGET_TS2PES): $(OBJS_TS2PES) crc32.o
65: $(CC) -o $@ $(OBJS_TS2PES) crc32.o
66:
67: $(TARGET_PES2ES): $(OBJS_PES2ES)
68: $(CC) -o $@ $(OBJS_PES2ES)
69:
1.10 oskar 70: $(TARGET_EN300468TS): $(OBJS_EN300468TS) crc32.o
71: $(CC) -o $@ $(OBJS_EN300468TS) crc32.o
72:
1.5 oskar 73: $(OBJS_G) $(OBJS_O): %.o: %.c $(HEADERS)
1.11 oskar 74: $(CC) $(CFLAGS) -DMPLEX_VERSION=\"$(VERSION)\" -o $@ $<
1.2 oskar 75:
76: $(OBJS_S): %.o: %.c %.h $(HEADERS)
1.1 oskar 77: $(CC) $(CFLAGS) -o $@ $<
78:
1.9 oskar 79: $(OBJS_TS2PES): %.o: %.c %.h $($(subst .o,.h,$@))
80: $(CC) $(CFLAGS) -o $@ $<
81:
82: $(OBJS_PES2ES): %.o: %.c %.h $($(subst .o,.h,$@))
83: $(CC) $(CFLAGS) -o $@ $<
84:
1.11 oskar 85: $(OBJS_EN300468TS): %.o: %.c $($(subst .o,.h,$@)) $(DEFS_INCSRC) \
86: makefile
1.10 oskar 87: $(CC) $(CFLAGS) -o $@ $<
88:
1.13 oskar 89: install: install_bin install_man
90:
91: install_bin: $(TARGETS)
92: install -d $(BINDIR)
1.5 oskar 93: install -c -m 755 $(TARGETS) $(BINDIR)
1.13 oskar 94:
95: install_man: $(MAN)
96: install -d $(MAN1DIR)
1.11 oskar 97: install -c -m 644 $(MAN1) $(MANGEN) $(MAN1DIR)
1.7 oskar 98:
99: uninstall:
100: cd $(BINDIR) ; rm -vf $(TARGETS)
1.11 oskar 101: cd $(MAN1DIR) ; rm -vf $(MAN1) $(MANGEN)
102:
103: clean:
104: rm -f *.o *~ $(TARGETS) $(MANGEN)
105:
106: $(DEFS_MANOBJ): %.o: % %.h
107: $(CC) -E -o - -x c -include $<.h $< | grep -v '^#' | grep -v '^$$' >$@
1.1 oskar 108:
1.11 oskar 109: en300468ts.1: %.1: %.1.src $(DEFS_MANOBJ)
1.14 oskar 110: sed -e '/^\.\\" INCLUDE-TABLE$$/r en300468ts.table.o' \
111: -e '/^\.\\" INCLUDE-DESCR$$/r en300468ts.descr.o' <$< >$@
1.11 oskar 112:
1.14 oskar 113: targz: $(ALLSRC) $(MAN1) $(MANSRC)
114: mkdir mplex13818-$(VERSION)
1.15 oskar 115: ln $(ALLSRC) mplex13818-$(VERSION)/.
1.11 oskar 116: for i in $(MAN1) $(MANSRC) ; do \
1.14 oskar 117: sed -e 's/^\(.TH.*\)"DATE" "VERSION"/\1"$(DATE)" "$(VERSION)"/' \
118: <$$i >mplex13818-$(VERSION)/$$i ; done
1.11 oskar 119: tar -czf mplex13818-$(VERSION).tar.gz mplex13818-$(VERSION)
120: rm -r mplex13818-$(VERSION)
LinuxTV legacy CVS <linuxtv.org/cvs>