blob: c889fd4b6b2f67a01be707ec36bfc4ed3e6ea14b (
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
.NOTPARALLEL:
d2c_verbose = $(d2c_verbose_@AM_V@)
d2c_verbose_ = $(d2c_verbose_@AM_DEFAULT_V@)
d2c_verbose_0 = @echo " D2C " $<;
fini_verbose = $(fini_verbose_@AM_V@)
fini_verbose_ = $(fini_verbose_@AM_DEFAULT_V@)
fini_verbose_0 = echo " FINI " `basename $$f`;
fix_verbose = $(fix_verbose_@AM_V@)
fix_verbose_ = $(fix_verbose_@AM_DEFAULT_V@)
fix_verbose_0 = echo " FIX " `basename $$f`;
# D2C_BIN =
# GEN_BIN =
# D2C_OUTDIR =
# D2C_TYPE =
# D2C_ARCH =
# D2C_ARCH_CN =
# D2C_GUARD =
# D2C_ENCODINGS =
# D2C_ID_PREFIX =
# D2C_ID_COUNT =
# D2C_SPECIFIC =
# FIXED_C_INCLUDES =
# FIXED_H_INCLUDES =
# FIXED_H_HOOKS_INCLUDES =
SUFFIXES = .g
.d.g:
$(d2c_verbose)$(D2C_BIN) -x cc -o $(D2C_OUTDIR) -t $(D2C_TYPE) -a $(D2C_ARCH) -n $(D2C_ARCH_CN) \
-G $(D2C_GUARD) $(D2C_ENCODINGS) --id-prefix=$(D2C_ID_PREFIX) --id-expected=$(D2C_ID_COUNT) \
$(D2C_SPECIFIC) $<
@touch $@
d2c_final_rules: finish_headers fix_includes_in_c_templates fix_includes_in_h_templates untabify_disass
finish_headers:
@for f in `find $(D2C_OUTDIR) -type f -name '*.h'`; do \
grep -q '#endif' $$f && continue; \
$(fini_verbose)$(D2C_BIN) -x fini -o $(D2C_OUTDIR) -t $(D2C_TYPE) -a $(D2C_ARCH) -n $(D2C_ARCH_CN) \
-G $(D2C_GUARD) $(D2C_ENCODINGS) --id-prefix=$(D2C_ID_PREFIX) --id-expected=$(D2C_ID_COUNT) \
$(D2C_SPECIFIC) $$f \
|| ( echo "Can not complete $$f" ; exit 1 ) ; \
done
fix_includes_in_c_templates:
@for f in `find $(D2C_OUTDIR) -type f -name '*.c'`; do \
if grep -q '##INCLUDES##' $$f; then \
$(fix_verbose)sed -i 's@##INCLUDES##@$(FIXED_C_INCLUDES)@' $$f; \
fi; \
done
fix_includes_in_h_templates:
@for f in `find $(D2C_OUTDIR) -type f -name '*.h'`; do \
if grep -q '##INCLUDES##' $$f; then \
if [ `basename $$f` == "hooks.h" ]; then \
$(fix_verbose)sed -i 's@##INCLUDES##@$(FIXED_H_HOOKS_INCLUDES)@' $$f ; \
else \
$(fix_verbose)sed -i 's@##INCLUDES##@$(FIXED_H_INCLUDES)@' $$f ; \
fi; \
fi; \
done
# Merci http://www.commandlinefu.com/commands/view/10276/grep-tab-t
untabify_disass:
@find $(D2C_OUTDIR) -type f -name '*.[ch]' -exec grep -q $$'\t' {} \; -exec sed -i 's/\t/ /g' {} \;
|