
all: ../StdEnv/Clean\ System\ Files/_startup.o ../StdEnv/Clean\ System\ Files/_startupProfile.o ../exe/cg ../StdEnv/Clean\ System\ Files/_system.o ../bin/patch_bin ../bin/clm tools/clm/clms ../exe/linker ../exe/cocl ../bin/htoclean

../StdEnv/Clean\ System\ Files/_startup.o: RuntimeSystem/_startup.o
	cp RuntimeSystem/_startup.o ../StdEnv/Clean\ System\ Files/_startup.o

../StdEnv/Clean\ System\ Files/_startupProfile.o: RuntimeSystem/_startupProfile.o
	cp RuntimeSystem/_startupProfile.o ../StdEnv/Clean\ System\ Files/_startupProfile.o

RuntimeSystem/_startup.o:
	cd RuntimeSystem ; make -f Makefile.linux all

RuntimeSystem/_startupProfile.o:
	cd RuntimeSystem ; make -f Makefileprofile.linux all

../StdEnv/Clean\ System\ Files/_system.o: ../exe/cg
	cd ../StdEnv/Clean\ System\ Files ; ../../exe/cg _system

../exe/cg: CodeGenerator/cg
	cp CodeGenerator/cg ../exe/cg

CodeGenerator/cg:
	cd CodeGenerator; \
	$(MAKE) -f Makefile.linux

../bin/patch_bin: tools/clm/patch_bin
	cp tools/clm/patch_bin ../bin/patch_bin

tools/clm/patch_bin:
	cd tools/clm; \
	$(MAKE) -f Makefile.linux

../bin/clm: tools/clm/clm
	cp tools/clm/clm ../bin/clm
	../bin/patch_bin ../bin/clm CLEANLIB $(CWD)/../exe
	../bin/patch_bin ../bin/clm CLEANPATH $(CWD)/../StdEnv

tools/clm/clm:
	cd tools/clm; \
	$(MAKE) -f Makefile.linux

tools/clm/clms:
	cd tools/clm; \
	$(MAKE) -f Makefile.linux clms
	../bin/patch_bin tools/clm/clms CLEANLIB $(CWD)/../exe
	../bin/patch_bin tools/clm/clms CLEANPATH $(CWD)/../StdEnv

libraries/ArgEnvUnix/ArgEnvC.o:
	cd libraries/ArgEnvUnix; make ArgEnvC.o

compiler/main/Unix/set_return_code_c.o:
	cd compiler/main/Unix; make all

../exe/linker: tools/elf_linker/linker
	cp tools/elf_linker/linker ../exe/linker

tools/elf_linker/linker: libraries/ArgEnvUnix/ArgEnvC.o compiler/main/Unix/set_return_code_c.o
	cd tools/elf_linker; \
	../clm/clms -nr -nt -h 20m -s 2m -I ia32 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix linker -o linker; \
	cp linker ../../../exe/linker; \
	../../../bin/clm -nr -nt -h 20m -s 2m -I ia32 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix linker -o linker
#	../clm/clms -nr -nt -h 16m -s 2m -I ia32 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix -l ../../libraries/ArgEnvUnix/ArgEnvC.o -l ../../compiler/main/Unix/set_return_code_c.o linker -o linker; \
#	../../../bin/clm -nr -nt -h 16m -s 2m -I ia32 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix -l ../../libraries/ArgEnvUnix/ArgEnvC.o -l ../../compiler/main/Unix/set_return_code_c.o linker -o linker

../exe/cocl: compiler/cocl
	cp compiler/cocl ../exe/cocl

compiler/cocl: libraries/ArgEnvUnix/ArgEnvC.o compiler/main/Unix/set_return_code_c.o
	cd compiler; \
	cd backendC/CleanCompilerSources; make;  cd ../..; \
	../../bin/clm -O _system; \
	../../bin/clm -nt -nw -ci -ns -nr -I backend -I frontend -I main -I main/Unix -O compare_constructor ; \
	../../bin/clm -h 20m -s 2m -nt -nw -nr -I backend -I frontend -I main -I main/Unix \
		-I ../libraries/ArgEnvUnix \
		-l ../libraries/ArgEnvUnix/ArgEnvC.o \
		-l main/Unix/cDirectory.o \
		-l main/Unix/set_return_code_c.o \
		-l main/Unix/ipc.o \
		-l backendC/CleanCompilerSources/backend.a \
		cocl -o cocl

../bin/htoclean: tools/htoclean/htoclean
	cp tools/htoclean/htoclean ../bin/htoclean

tools/htoclean/htoclean:
	cd tools/htoclean/htoclean\ source\ code; \
	../../../../bin/clm -I ../../../libraries/ArgEnvUnix -l ../../../libraries/ArgEnvUnix/ArgEnvC.o -h 4m -nt -nr -I unix htoclean -o ../htoclean


CWD = $(MCWD)$(GMCWD)
MCWD : sh=pwd
GMCWD = ${shell echo `pwd`}
