diff options
author | Cyrille Bagard <nocbos@gmail.com> | 2018-04-02 11:58:42 (GMT) |
---|---|---|
committer | Cyrille Bagard <nocbos@gmail.com> | 2018-04-02 12:39:30 (GMT) |
commit | 1db4ef323b7a76093356ae76268132f3760e1631 (patch) | |
tree | fec36ee0ec1b6b2010b62ca4177edca0e31e2114 /tools/d2c/d2c.mk | |
parent | 1bc80837dde03a32b5ab185067f7bd4c499a9850 (diff) |
Rewritten the whole instruction definition format.
Diffstat (limited to 'tools/d2c/d2c.mk')
-rw-r--r-- | tools/d2c/d2c.mk | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/tools/d2c/d2c.mk b/tools/d2c/d2c.mk index dbc9b83..10bd226 100644 --- a/tools/d2c/d2c.mk +++ b/tools/d2c/d2c.mk @@ -5,20 +5,27 @@ 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 = -# D2C_TYPE = +# GEN_BIN = + # D2C_OUTDIR = +# D2C_TYPE = # D2C_ARCH = -# D2C_HEADER = +# D2C_ARCH_CN = +# D2C_GUARD = # D2C_ENCODINGS = -# D2C_MACROS = -# D2C_OPERANDS = -# D2C_PREFIX = +# D2C_ID_PREFIX = +# D2C_ID_COUNT = +# D2C_SPECIFIC = # FIXED_C_INCLUDES = # FIXED_H_INCLUDES = @@ -27,25 +34,36 @@ fix_verbose_0 = echo " FIX " `basename $$f`; SUFFIXES = .g .d.g: - $(d2c_verbose)$(D2C_BIN) -i $< -t $(D2C_TYPE) -d $(D2C_OUTDIR) -a $(D2C_ARCH) -H $(D2C_HEADER) $(D2C_ENCODINGS) $(D2C_MACROS) $(D2C_OPERANDS) -p "$(D2C_PREFIX)" + $(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: fix_includes_in_c_templates fix_includes_in_h_templates untabify_disass +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 .gen/ -name '*tmpl.c'`; do \ - if grep -q '##INCLUDES##' $$f; then \ - $(fix_verbose)sed -i 's@##INCLUDES##@$(FIXED_C_INCLUDES)@' $$f; \ - fi; \ + @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 .gen/ -name '*tmpl.h'`; do \ - if grep -q '##INCLUDES##' $$f; then \ + @for f in `find $(D2C_OUTDIR) -type f -name '*.h'`; do \ + if grep -q '##INCLUDES##' $$f; then \ $(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 .gen/ -name '*[ch]' -exec grep -q $$'\t' {} \; -exec sed -i 's/\t/ /g' {} \; + @find $(D2C_OUTDIR) -type f -name '*.[ch]' -exec grep -q $$'\t' {} \; -exec sed -i 's/\t/ /g' {} \; |