File: Makefile

package info (click to toggle)
scantool 1.21%2Bdfsg-4
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,956 kB
  • ctags: 2,391
  • sloc: ansic: 12,269; sh: 829; makefile: 344; asm: 86; perl: 29
file content (34 lines) | stat: -rw-r--r-- 1,017 bytes parent folder | download | duplicates (3)
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
34
TXT=$(wildcard *.txt)
OUT=$(TXT:.txt=.out)

all: codes.dat

# Extract originally shipped codes.
codes.out: ../../codes.dat Makefile
	# Avoid interactive prompt from "dat".
	rm -f *codes
	dat -e $< '*'
	# Inject column 2.
	sed -e 's/\r//g' *codes | awk -F'\t' '{out=$$1"\tGeneric"; for (i=2;i<=NF;i++) { out=out"\t"$$i }; print out}' > $@

# Inject origin column from public codes.
%.out: %.txt Makefile
	# Inject column 2 based on file name.
	set -e; \
	origin=$$(echo $< | cut -d- -f2 | cut -d. -f1); \
	awk -F"\t" '{out=$$1"\t'$$origin'"; for (i=2;i<=NF;i++) { out=out"\t"$$i }; print out}' $< > $@

# Build Allegro objects based on code prefix.
codes.dat: codes.out $(OUT)
	# Use only unique entries, without ;-prefixed comments.
	sort -u $^ | grep -v '^;' >all.out
	rm -f $@.new
	set -e; for code in $$(cut -c1 all.out | sort -u); do \
		lower=$$(echo $$code | tr A-Z a-z); \
		grep ^$$code all.out > $${lower}codes; \
		dat -a $@.new $${lower}codes; \
	done
	mv $@.new $@

clean:
	rm -rf *codes *.out codes.dat*