blob: 4e77ce415499c0122a8b12f10289e01129533b97 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
.POSIX:
.SILENT: all clean .util.mk
CFLAGS=-std=gnu99 -D_XOPEN_SOURCE=700 -g
all: .util.mk
make -f .util.mk --no-print-directory
deps: clean .util.mk
clean:
[ -f .util.mk ] && make -k --no-print-directory -f .util.mk clean || true
rm -f .util.mk
.util.mk: . Makefile
printf '.POSIX:\n\n' > $@
printf '.SUFFIXES: .cat .msg\n\n' >> $@
printf 'default: all\n\n' >> $@
printf 'CFLAGS=$(CFLAGS)\n' >> $@
printf 'UTILITY=%s\n' "$$(basename -s .c $$(grep -l ^main *.c | head -n1))" >> $@
printf 'SOURCES=%s\n' "$$(ls -1 *.c | tr '\n' ' ')" >> $@
printf 'HEADERS=%s\n' "$$(ls -1 *.h 2>/dev/null | tr '\n' ' ')" >> $@
printf 'OBJECTS=%s\n' "$$(ls -1 *.c | sed -e 's/\.c$$/.o/' | tr '\n' ' ')" >> $@
printf 'L10N=%s\n' "$$(ls -1 *.msg 2>/dev/null | sed -e 's/\.msg$$/\.cat/' | tr '\n' ' ')" >> $@
printf 'L11N=' >> $@
sed -ne '/^\/\*\*cat/,/cat\*\*\//p;' *.c | head -n1 | awk '{print $$2 ".cat"}' >> $@
printf '\n' >> $@
printf 'all: $$(UTILITY) $$(L10N)\n\n' >> $@
printf '$$(UTILITY): $$(OBJECTS) $$(HEADERS)\n\n' >> $@
printf '.msg.cat:\n\tgencat $$@ $$<\n\n' >> $@
printf ".c.cat:\n\tsed -ne '/^\/\*\*cat/,/cat\*\*\//p;' $$< | grep -v ^/ | grep -v ^\* | gencat \$$@ -\n\n" >> $@
printf 'clean:\n\trm -f *.o $$(L10N) $$(UTILITY)\n\n' >> $@
|