
all: ../StdEnv/Clean\ System\ Files/_startup.o ../StdEnv/Clean\ System\ Files/_startupProfile.o ../StdEnv/Clean\ System\ Files/_startupTrace.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/linux64/_startup.o
	cp RuntimeSystem/linux64/_startup.o ../StdEnv/Clean\ System\ Files/_startup.o

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

../StdEnv/Clean\ System\ Files/_startupTrace.o: RuntimeSystem/linux64Trace/_startupTrace.o
	cp RuntimeSystem/linux64Trace/_startupTrace.o ../StdEnv/Clean\ System\ Files/_startupTrace.o

RuntimeSystem/linux64/_startup.o:
	cd RuntimeSystem ; ./remove_tmp_files_linux ; ./make_astartup.csh

RuntimeSystem/linux64Profile/_startupProfile.o:
	cd RuntimeSystem ; ./remove_tmp_files_linux ; ./make_astartupProfile.csh

RuntimeSystem/linux64Trace/_startupTrace.o:
	cd RuntimeSystem ; ./remove_tmp_files_linux ; ./make_astartupTrace.csh

../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.linux64

../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.linux64 patch_bin

../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.linux64 clm

tools/clm/clms:
	cd tools/clm; \
	$(MAKE) -f Makefile.linux64 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 -I ai64 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix -s 4m -h 30m -nt -nr linker -o linker; \
	cp linker ../../../exe/linker; \
	../../../bin/clm -I ai64 -I ../../libraries/ArgEnvUnix -I ../../compiler/main/Unix -s 4m -h 30m -nt -nr 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 -f Makefile.linux64;  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 -gcm -h 40M -nt -nw -ci -nr -I backend -I frontend -I main -I main/Unix \
	-I ../libraries/ArgEnvUnix \
	-l ../libraries/ArgEnvUnix/ArgEnvC.o \
	-l main/Unix/Clean\ System\ Files/cDirectory.o \
	-l main/Unix/Clean\ System\ Files/set_return_code_c.o \
	-l main/Unix/Clean\ System\ Files/ipc_c.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`}
