# This is the make file of the entire program.


COMPILER=gcc -g
LDFLAGS=-lm -ldl

PNHEADERS=pnheaders
SPNBOX=spnbox
CODEGEN=newcodegen
CODEGENOBJS = $(CODEGEN)
TRANSLATOR=parser

ct: objectfiles main_function2.o
	$(COMPILER) -o ct $(PNHEADERS)/*.o $(CODEGENOBJS)/*.o $(SPNBOX)/*.o \
    main_function2.o $(SPNBOX)/*.a $(TRANSLATOR)/*.o $(LDFLAGS)

objectfiles: 
	cd $(PNHEADERS); make
	cd $(CODEGEN); make -f Makefile-linux.mak static
	cd $(SPNBOX); make
	cd $(TRANSLATOR); make

main_function2.o: $(PNHEADERS)/main_function2.c $(PNHEADERS)/pns.h $(SPNBOX)/spnbox.h $(CODEGEN)/codegen.h
	$(COMPILER) -c $(PNHEADERS)/main_function2.c -Ispnbox -I$(CODEGEN) -I$(PNHEADERS)

clean:
	rm -f main_function2.o
	rm -f ct
	cd $(PNHEADERS); make clean
	cd $(CODEGEN); make -f Makefile-linux.mak clean
	cd $(TRANSLATOR); make clean
	cd $(SPNBOX); make clean

