HFILES = cinnabar.h mempool.h primitives.h CCFILES = cinnabar.cc test1.cc mempool.cc hash.cc primitives.cc OOFILES = cinnabar.o test1.o mempool.o hash.o primitives.o SFILES = cinnabar.s test1.s mempool.s hash.s primitives.s #SOFILES = class_Apple.so _Apple.so _Fib.so _Fib3.so _Foo.so _Character.so SOFILES = _CinnabarTestFruit.so _CinnabarTestApple.so _CinnabarTestGreenApple.so _CinnabarTestFib.so ./class_Apple.so #SOFILES_SLASHED = ./class_Apple.so ./_Apple.so ./_Fib.so ./_Fib3.so ./_Foo.so ./_Character.so SOFILES_SLASHED = ./_CinnabarTestFruit.so ./_CinnabarTestApple.so ./_CinnabarTestGreenApple.so ./_CinnabarTestFib.so ./class_Apple.so HOW = -ggdb -rdynamic -fno-exceptions all_run: all run all: a.out $(SOFILES) sos: for x in _[A-Z]*.cc ; do ( B=`basename $$x .cc`; test -z `find $$B.cc -newer $$B.so || echo X ` || { set -x; g++ -shared $(HOW) $(OPT) $(MORE) -o $$B.so $$x ;} ) || exit $$?; done small_sos: for x in _Cinnabar*.cc ; do ( B=`basename $$x .cc`; set -x; g++ -shared $(HOW) $(OPT) $(MORE) -o $$B.so $$x ) || exit $$?; done incr_sos: for x in __*.cc ; do ( B=`basename $$x .cc`; set -x; test -z `find $$B.cc -newer $$B.so || echo X ` || g++ -shared $(HOW) $(OPT) $(MORE) -o $$B.so $$x ) || exit $$?; done big: make a.out sos run_big small: make a.out small_sos run_small run: ./a.out $(SOFILES_SLASHED) ci+ [A-Za-z]*.cc [A-Za-z]*.h *.sh Makefile READ_ME LICENSE run_big: ./a.out ./*.so ci+ [A-Za-z]*.cc [A-Za-z]*.h *.sh Makefile READ_ME LICENSE run_small: ./a.out ./_Cinnabar*.so ci+ [A-Za-z]*.cc [A-Za-z]*.h *.sh Makefile READ_ME LICENSE a.out: $(HFILES) $(OOFILES) main.o startup.o sh generate_testall.sh $(OOFILES) > _testall.c gcc -Wall -c $(HOW) $(OPT) $(MORE) _testall.c g++ -Wall $(HOW) $(OPT) $(MORE) $(OOFILES) _testall.o startup.o main.o -ldl foundation.a: sh mk-foundation.sh y.prepare: foundation.a incr_sos g++ -c -Wall $(HOW) $(OPT) $(MORE) -DXOUT $(CCFILES) sh generate_testall.sh $(OOFILES) > __testall.c gcc -c -Wall $(HOW) $(OPT) $(MORE) __testall.c main.c y.out: y.prepare g++ -o y.out -Wall $(HOW) $(OPT) $(MORE) $(OOFILES) __testall.o main.o foundation.a -ldl x.out: $(HFILES) $(OOFILES) main.o incr_sos g++ -c -Wall $(HOW) $(OPT) $(MORE) -DXOUT cinnabar.cc sh generate_testall.sh $(OOFILES) > __testall.c #g++ -c $(HOW) $(OPT) $(MORE) _[A-Z]*.cc for x in _[A-Z]*.cc ; do ( B=`basename $$x .cc`; set -x; test -z `find $$B.cc -newer $$B.o || echo X ` || g++ -c $(HOW) $(OPT) $(MORE) $$x ) ; done sh generate_initcalls.sh _[A-Z]*.o > __initcalls.c gcc -c -Wall $(HOW) $(OPT) $(MORE) __testall.c __initcalls.c g++ -o x.out -Wall $(HOW) $(OPT) $(MORE) $(OOFILES) _[A-Z]*.o __testall.o __initcalls.o main.o $(ADD) -ldl #NEW j: make MORE="-Dmain=j_main" ADD="jint.o" jint.o y.prepare g++ -shared -o SqueakCompiler.so --Wall $(HOW) $(OPT) $(MORE) $(OOFILES) __testall.o main.o foundation.a jint.o -ldl jint.o : jint.cc g++ -c -I./Squeak-3.8a-1/platforms/Cross/vm/ -I./Squeak-3.8a-1/platforms/unix/vm/ -I./Squeak-3.8a-1/platforms/unix/bld/ $(HOW) $(OPT) $(MORE) jint.cc #OLD #SqueakCompiler.so : # g++ -shared -I./Squeak-3.8a-1/platforms/Cross/vm/ -I./Squeak-3.8a-1/platforms/unix/vm/ -I./Squeak-3.8a-1/platforms/unix/bld/ $(HOW) $(OPT) $(MORE) -o SqueakCompiler.so SqueakCompiler.cc cinnabar.o : cinnabar.cc $(HFILES) g++ -Wall -c $(HOW) $(OPT) $(MORE) cinnabar.cc test1.o : test1.cc $(HFILES) g++ -Wall -c $(HOW) $(OPT) $(MORE) test1.cc mempool.o : mempool.cc $(HFILES) g++ -Wall -c $(HOW) $(OPT) $(MORE) mempool.cc hash.o : hash.cc $(HFILES) g++ -Wall -c $(HOW) $(OPT) $(MORE) hash.cc startup.o : _gen_header.h _gen_inits.h _gen_objects.h $(HFILES) startup.cc g++ -Wall $(HOW) $(OPT) $(MORE) -O0 -c startup.cc main.o : main.c gcc -Wall $(OPT) -c main.c class_Apple.so : class_Apple.cc $(HFILES) g++ -shared $(HOW) $(OPT) $(MORE) -o class_Apple.so class_Apple.cc _CinnabarTestFib.so : _CinnabarTestFib.cc $(HFILES) g++ -shared $(HOW) $(OPT) $(MORE) -o _CinnabarTestFib.so _CinnabarTestFib.cc _CinnabarTestFruit.so : _CinnabarTestFruit.cc $(HFILES) g++ -shared $(HOW) $(OPT) $(MORE) -o _CinnabarTestFruit.so _CinnabarTestFruit.cc _CinnabarTestApple.so : _CinnabarTestApple.cc $(HFILES) g++ -shared $(HOW) $(OPT) $(MORE) -o _CinnabarTestApple.so _CinnabarTestApple.cc _CinnabarTestGreenApple.so : _CinnabarTestGreenApple.cc $(HFILES) g++ -shared $(HOW) $(OPT) $(MORE) -o _CinnabarTestGreenApple.so _CinnabarTestGreenApple.cc clean: rm -f a.out *.so *.o *.s *.lreg _testall.* ci: ci -l -q -m/dev/null -t/dev/null [a-z]*.cc [a-z]*.c [a-z]*.h [a-z]*.sh Makefile ########################################################## s0: make clean ; make OPT=' -O3 ' s1: make clean ; make OPT=' -O3 -march=pentium3 ' s2: make clean ; make OPT=' -O3 -march=pentium3 -DFIX_REG_FOR_VAT ' s3: make clean ; make OPT=' -O3 -march=pentium3 -DFIX_REG_FOR_VAT -DGLOBAL_VAT ' s0n: make clean ; make OPT=' -O3 -fomit-frame-pointer ' s1n: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=pentium3 ' s2n: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=pentium3 -DFIX_REG_FOR_VAT ' s3n: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=pentium3 -DFIX_REG_FOR_VAT -DGLOBAL_VAT ' s0a: make clean ; make OPT=' -O3 -fomit-frame-pointer ' s1a: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=athlon ' s2a: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=athlon -DFIX_REG_FOR_VAT ' s3a: make clean ; make OPT=' -O3 -fomit-frame-pointer -march=athlon -DFIX_REG_FOR_VAT -DGLOBAL_VAT ' s0g: make clean ; make OPT=' -O1 ' s1g: make clean ; make OPT=' -O1 -march=pentium3 ' s2g: make clean ; make OPT=' -O1 -march=pentium3 -DFIX_REG_FOR_VAT ' s3g: make clean ; make OPT=' -O1 -march=pentium3 -DFIX_REG_FOR_VAT -DGLOBAL_VAT ' # -momit-leaf-frame-pointer # -fverbose-asm # -ffixed-ebx # __attribute(fastcall)__