view Makefile @ 126:1d1612fe705a

*** empty log message ***
author kono
date Wed, 26 Mar 2003 16:50:12 +0900
parents 5f180dc8d84e
children eb4d8975926c
line wrap: on
line source

CC = gcc
CFLAGS = -g -Wall -I.
BASE=0
STAGE=1
MFLAGS=$(MFALGS) BASE=$(BASE) STAGE=$(STAGE)
ARCH=powerpc
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-tree.o
# CODE=mc-code-ia32.c
CODE=mc-code-$(ARCH).c

all: mc mc-ia32 mc-powerpc

mc:  mc-$(ARCH)
	cp mc-$(ARCH) mc

mc-powerpc : mc-code-powerpc.o $(COMPLIB) $(CONVERTER)
	$(CC) -g mc-code-powerpc.o $(COMPLIB) $(CONVERTER) -o $@

mc-ia32 : mc-code-ia32.o $(COMPLIB) $(CONVERTER)
	$(CC) -g mc-code-ia32.o $(COMPLIB) $(CONVERTER) -o $@

conv/conv.h: conv_func.tbl conv_func.pl
	perl conv_func.pl
conv/convdef.h: conv_func.tbl conv_func.pl
	perl conv_func.pl
conv/null.c: conv_func.tbl conv_func.pl
	perl conv_func.pl

check-all:
	make check 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/simp
	make check TARGET=test/simp0
	make check TARGET=test/tmp
	make check TARGET=test/tmp10
	make check TARGET=test/tmp11
	make check TARGET=test/tmp7
	make check TARGET=test/tmp8
	make check TARGET=test/tmp9

check: $(MC)
	-gcc $(TARGET).c -o b.out $(MLIB)
	-./b.out > $(TARGET).gcc.out
	-./$(MC) -s $(TARGET).c
	-gcc $(TARGET).s -$(MLIB)
	-./a.out > $(TARGET).$(MC).out
	-diff  $(TARGET).gcc.out $(TARGET).$(MC).out

tar :
	make clean
	tar cBf - . | gzip > ../comp.tgz 

depend :
	makedepend mc-code-ia32.c mc-code.h mc-codegen.c mc-codegen.h \
		mc-parse.c mc-tree.c mc.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-powerpc.c

clean :
	-rm -f mc mc-ia32 mc-powerpc *.bak *.s *.o *.cc mc mc1 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

mc1 : b00.s b01.s mc-codegen.o mc-tree.o $(CONVERTER)
	$(CC) -g -o $@ $(PRINTF) b00.s b01.s mc-codegen.o mc-tree.o $(CONVERTER)
b00.s : mc-parse.c $(MC)
	./$(MC) -s -ob00.s mc-parse.c
b01.s : $(CODE) $(MC)
	./$(MC) -s -ob01.s $(CODE)
b10.s : mc-parse.c mc1
	./mc1 -s -ob10.s mc-parse.c
b11.s : $(CODE) $(PRINTF) mc1
	./mc1 -s -ob11.s $(CODE)

diff :  b00.s b01.s b10.s b11.s
	-diff b00.s b10.s
	-diff b01.s b11.s

# DO NOT DELETE