Mercurial > hg > CbC > old > device
diff Makefile.raspberryPi @ 935:7672a37e7545 default tip
Raspbery PI ARM support begin
author | kono |
---|---|
date | Sat, 24 Dec 2016 03:02:57 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.raspberryPi Sat Dec 24 03:02:57 2016 +0000 @@ -0,0 +1,253 @@ +CC = gcc +# -O3 +# CFLAGS = -g -Wall -I. +# CFLAGS = -g -Wall -I. -pg -fprofile-arcs -ftest-coverage +# LDFLAGS = -pg +# for Linux Zaurus +CFLAGS = -fsigned-char -pipe -g -I. -I/home/zaurus/develop/include -DUSE_CODE_KEYWORD +CFLAGS1 = -g -pipe -I. -fsigned-char -DUSE_CODE_KEYWORD +BASE=0 +STAGE=1 +MFLAGS=$(MFALGS) BASE=$(BASE) STAGE=$(STAGE) +ARCH=arm +MC=mc-$(ARCH) +MLIB = -lm +PRINTF= # printf.c +CONVERTER=conv/c.o conv/null.o conv/c2cbc.o conv/cbc2c.o +COMPLIB = mc-parse.o mc-codegen.o mc-switch.o mc-macro.o mc-tree.o mc-inline.o +# CODE=mc-code-ia32.c +CODE=mc-code-$(ARCH).c +# +TARGET=test/simp + +all: mc + +mc: mc-include.c mc-$(ARCH) + cp mc-$(ARCH) mc + +TAGS: + ctags mc-code-powerpc.c mc-code.h mc-codegen.c mc-codegen.h \ + mc-macro.c \ + mc-parse.c mc-tree.c mc-switch.c mc-switch.h \ + mc.h conv/c.c conv/c.h \ + mc-inline.h mc-inline.c \ + conv/conv.h conv/convdef.h conv/null.c + +predefined: + $(CC) -xc -E -dM /dev/null + + +mc-powerpc : mc-code-powerpc.o $(COMPLIB) $(CONVERTER) + $(CC) $(LDFLAGS) -g mc-code-powerpc.o $(COMPLIB) $(CONVERTER) -o $@ + +mc-ia32 : mc-code-ia32.o $(COMPLIB) $(CONVERTER) + $(CC) $(LDFLAGS) -g mc-code-ia32.o $(COMPLIB) $(CONVERTER) -o $@ + +mc-mips : mc-code-mips.o $(COMPLIB) $(CONVERTER) + $(CC) $(LDFLAGS) -g mc-code-mips.o $(COMPLIB) $(CONVERTER) -o $@ + +mc-arm : mc-code-arm.o $(COMPLIB) $(CONVERTER) + $(CC) $(LDFLAGS) -g mc-code-arm.o $(COMPLIB) $(CONVERTER) -o $@ + +conv/conv.h: conv_func.tbl tools/conv_func.pl + perl tools/conv_func.pl +conv/convdef.h: conv_func.tbl tools/conv_func.pl + perl tools/conv_func.pl +conv/null.c: conv_func.tbl tools/conv_func.pl + perl tools/conv_func.pl + +mc-include.c: conv/conv.h + perl tools/find-gcc-include-path -l $(CC) > mc-include.c + +mc.h-new: + perl tools/mc-h-renum.pl mc.h > mc.h.1 + mv mc.h.1 mc.h + +check-all: check-all-c check-all-code + +check-all-c: + make check TARGET=test/basic + make check-inline TARGET=test/basic + make check TARGET=test/call + make check TARGET=test/fact0 + make check TARGET=test/float + make check TARGET=test/ifdef + make check TARGET=test/int + make check TARGET=test/macro + make check TARGET=test/regargs + make check TARGET=test/short + make check TARGET=test/simp + make check TARGET=test/simp0 + make check TARGET=test/simp1 + make check TARGET=test/static + make check TARGET=test/tmp + make check TARGET=test/tmp10 + make check TARGET=test/tmp11 + make check TARGET=test/tmp12 + make check TARGET=test/tmp5 + make check TARGET=test/tmp7 + make check TARGET=test/tmp8 + make check TARGET=test/tmp9 + make check TARGET=test/enum + make check TARGET=test/obsf + make check TARGET=test/obsf2 + make check TARGET=test/long + make check TARGET=test/tstdarg + make check TARGET=test/switch + make check TARGET=test/strinit + make check TARGET=test/code-gen-all + make check-inline TARGET=test/code-gen-all + make check TARGET=test/bitfield + make check TARGET=test/bitfield1 + make check-inline TARGET=test/bitfield1 + make check TARGET=test/cext + make check TARGET=test/const + make check TARGET=test/void_code + make check TARGET=test/putenemy + make check TARGET=test/inline + make check TARGET=test/offset + make check TARGET=test/ps2 + make check TARGET=test/multi +# make check TARGET=test/scope STDFLAG="-std=gnu99" +# make check-inline TARGET=test/scope STDFLAG="-std=gnu99" +#MK =-make +MK= +check-all-code: + make check-code$(MK) TARGET=test/arg + make check-code$(MK) TARGET=test/conv + make check-code$(MK) TARGET=test/conv1 + make check-code$(MK) TARGET=test/fact-a + make check-code$(MK) TARGET=test/fact + make check-code$(MK) TARGET=test/goto + make check-code$(MK) TARGET=test/test1 + make check-code$(MK) TARGET=test/test2 + make check-code$(MK) TARGET=test/tmpa + make check-code$(MK) TARGET=test/tmp1 + make check-code$(MK) TARGET=test/tmp2 + make check-code$(MK) TARGET=test/tmp4 + make check-code$(MK) TARGET=test/tmp6 + make check-code$(MK) TARGET=test/tmpb + make check-code$(MK) TARGET=test/scope + make check-code$(MK) TARGET=test/throw + make check-code$(MK) TARGET=test/too-long-argument + +check-nkf: + ( cd nkf203; $(CC) -g -o nkf1 nkf.c utf8tbl.c ) + ( cd nkf203; ../mc-$(ARCH) -s nkf.c utf8tbl.c ) + ( cd nkf203; $(CC) -g -o nkf nkf.s utf8tbl.s ) + ( cd nkf203; perl test.pl ) + +# -./$(MC) -Itest/ -s $(TARGET).c + +check: mc $(MC) $(TARGET).c + -$(CC) $(CFLAGS1) $(STDFLAG) $(TARGET).c -o b.out $(MLIB) + -./b.out > $(TARGET).gcc.out + -./$(MC) -s $(TARGET).c + -$(CC) $(TARGET).s $(MLIB) + -./a.out > $(TARGET).$(MC).out + -diff $(TARGET).gcc.out $(TARGET).$(MC).out + +check-inline: mc $(MC) $(TARGET).c + -$(CC) $(CFLAGS1) $(STDFLAG) $(TARGET).c -o b.out $(MLIB) + -./b.out > $(TARGET).gcc.out + -./$(MC) -s -DINLINE=inline $(TARGET).c + -$(CC) $(TARGET).s $(MLIB) + -./a.out > $(TARGET).$(MC).out + -diff $(TARGET).gcc.out $(TARGET).$(MC).out + +check-code: mc $(MC) + -./$(MC) -s $(TARGET).c + -$(CC) $(TARGET).s $(MLIB) + -./a.out > $(TARGET).$(MC).out + -diff $(TARGET).code-out $(TARGET).$(MC).out +check-code-make: mc $(MC) + -./$(MC) -s $(TARGET).c + -$(CC) $(TARGET).s $(MLIB) + -./a.out > $(TARGET).code-out + +test/code-gen-all.c: test/code-gen.pl test/code-gen.c + perl test/code-gen.pl < test/code-gen.c > test/code-gen-all.c + +incpri: + perl tools/incpri.pl test/*.c + +tags: tags-$(ARCH) + +tags-$(ARCH): + ctags mc.h mc-code.h mc-code-$(ARCH).c mc-codegen.c mc-codegen.h \ + mc-parse.c mc-tree.c \ + conv/c.c conv/c.h \ + conv/conv.h conv/convdef.h + +tar : + make clean + tar cBf - . | gzip > ../comp.tgz + +depend : mc-include.c + makedepend mc-code-ia32.c mc-code.h mc-codegen.c mc-codegen.h \ + mc-parse.c mc-tree.c mc-switch.c mc-switch.h mc.h \ + mc-inline.c mc-macro.c mc-macro.h mc-parse.h \ + conv/c.c conv/c.h conv/c2cbc.c conv/c2cbc.h conv/cbc2c.c \ + conv/cbc2c.h conv/conv.h conv/convdef.h conv/null.c conv/null.h \ + mc-code-arm.c \ + mc-code-powerpc.c \ + mc-code-mips.c + +clean : + -rm -f mc mc-ia32 mc-powerpc mc-mips mc-arm *.bak *.s *.o *.cc mc mc1 mc2 a.out *~ core* */*.o *.bak test/*.s test/*.cc test/*.o test/*.bak test/*~ conv/*.s conv/*.cc conv/*.o conv/*.bak conv/*~ *.out */*.out *.i */*.i mc-include.h + +mc1 : b00.s b01.s mc-codegen.o mc-tree.o mc-switch.o mc-macro.o mc-inline.o $(CONVERTER) + $(CC) -g -o $@ $(PRINTF) b00.s b01.s mc-codegen.o mc-tree.o mc-switch.o mc-macro.o mc-inline.o $(CONVERTER) + +mc2 : b00.s b01.s b02.s b03.s mc-macro.o mc-inline.o $(CONVERTER) + $(CC) -g -o $@ $(PRINTF) b00.s b01.s b02.s b03.s b04.s mc-macro.o mc-inline.o $(CONVERTER) + +b00.s : mc-parse.c $(MC) + ./$(MC) -s -ob00.s mc-parse.c +b01.s : $(CODE) $(MC) + ./$(MC) -s -ob01.s $(CODE) +b02.s : mc-codegen.c $(MC) + ./$(MC) -s -ob02.s mc-codegen.c +b03.s : mc-tree.c $(MC) + ./$(MC) -s -ob03.s mc-tree.c +b04.s : mc-switch.c $(MC) + ./$(MC) -s -ob04.s mc-switch.c + +b10.s : mc-parse.c mc1 + ./mc1 -s -ob10.s mc-parse.c +b11.s : $(CODE) $(PRINTF) mc1 + ./mc1 -s -ob11.s $(CODE) +b12.s : mc-codegen.c mc1 + ./mc1 -s -ob12.s mc-codegen.c +b13.s : mc-tree.c mc1 + ./mc1 -s -ob13.s mc-tree.c +b14.s : mc-switch.c mc1 + ./mc1 -s -ob14.s mc-switch.c + +b20.s : mc-parse.c mc2 + ./mc2 -s -ob20.s mc-parse.c +b21.s : $(CODE) $(PRINTF) mc2 + ./mc2 -s -ob21.s $(CODE) +b22.s : mc-codegen.c mc2 + ./mc2 -s -ob22.s mc-codegen.c +b23.s : mc-tree.c mc2 + ./mc2 -s -ob23.s mc-tree.c +b24.s : mc-switch.c mc1 + ./mc2 -s -ob24.s mc-switch.c + +diff : b00.s b01.s b02.s b03.s b04.s b10.s b11.s b12.s b13.s b14.s + -diff b00.s b10.s + -diff b01.s b11.s + -diff b02.s b12.s + -diff b03.s b13.s + -diff b04.s b14.s + +diff2 : b00.s b01.s b02.s b03.s b04.s b20.s b21.s b22.s b23.s b24.s + -diff b00.s b20.s + -diff b01.s b21.s + -diff b02.s b22.s + -diff b03.s b23.s + -diff b04.s b24.s + + +# DO NOT DELETE