| 
					
				 | 
			
			
				@@ -1,129 +0,0 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# This Makefile takes .st files in the amber/st directory and produces compiled 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# javascript files from them, for both debug and deployment. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Where we find the current runnable code and where we put our js files on install 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-JS      := ../js/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# The compiler script 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-AMBERC  := ../bin/amberc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Generic flags to AMBERC 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-FLAGS   := -d 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# All corresponding js filenames for every st file available 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# In other words, if we have Kernel.st and Compiler.st, then OBJECTS will be "Kernel.js Compiler.js" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-OBJECTS := $(patsubst %.st,%.js,$(wildcard *.st)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Default make target since it is the first target in this Makefile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-all: $(OBJECTS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Step by step 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# First we copy the core javascript files from current working files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# into this directory. These files are hand written or generated using 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# other tools (parser.js). $@ is the target name. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-boot.js init.js: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	cp ../js/$@ . 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# generate the parser 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# $@ is the target 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# $< is the prerequisite 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-parser.js: ../js/parser.pegjs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	pegjs --track-line-and-column --cache -e smalltalk.parser $< $@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Then we compile Kernel-*.st files depending on having boot.js, init.js and parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# $< means the first dependency - in other words Kernel-*.st 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Objects.js: Kernel-Objects.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Classes.js: Kernel-Classes.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Methods.js: Kernel-Methods.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Collections.js: Kernel-Collections.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Exceptions.js: Kernel-Exceptions.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Transcript.js: Kernel-Transcript.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Announcements.js: Kernel-Announcements.st boot.js init.js parser.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# ...and Compiler, but using the new Kernel from above. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# We only need to depend on Kernel js files since it in turn depends on boot.js etc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Compiler.st: Importer-Exporter.st Compiler-Exceptions.st Compiler-Core.st \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Compiler-AST.st Compiler-Semantic.st Compiler-IR.st Compiler-Inlining.st \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Compiler-Interpreter.st 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	echo "Smalltalk current createPackage: 'Compiler' properties: #{}!" >$@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	sed -e '/^Smalltalk current createPackage:.*!$$/ d' \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      -e 's/package: '"'[^':]*'"'!/package:'"'Compiler'"'!/' \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      -e 's/ methodsFor: '"'[^']*'"'!$$/ methodsFor: '"'"'*Compiler'"'"'!/' \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      $^ >>$@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Compiler.js: Compiler.st Kernel-Objects.js Kernel-Classes.js Kernel-Methods.js Kernel-Collections.js \ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Kernel-Exceptions.js Kernel-Transcript.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Importer-Exporter,Compiler-Exceptions,Compiler-Core,Compiler-AST,Compiler-Semantic,Compiler-IR,Compiler-Inlining $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# ...now that we have a new Kernel and Compiler we use them 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# to compile the rest of st files presuming that they only depend on Kernel, like 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# for example Canvas.js and Benchfib.js. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-%.js: %.st Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# But for some libraries there are more dependencies to care for. Then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# we need to use -l so that the compiler first loads that library 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# before compiling the .st file. Otherwise bindings will fail. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# NOTE: With the new dependency model in class Package etc this will change! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Canvas.js: Canvas.st Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# IDE uses JQuery 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-IDE.js: IDE.st Canvas.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Canvas $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-TrySmalltalk.js: TrySmalltalk.st IDE.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Canvas,IDE $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Some Examples use SUnit and also IDE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Examples.js: Examples.st SUnit.js IDE.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l SUnit,Canvas,IDE $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Tests typically also use SUnit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Kernel-Tests.js: Kernel-Tests.st SUnit.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l SUnit $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Compiler-Tests.js: Compiler-Tests.st SUnit.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l SUnit $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-SUnit-Tests.js: SUnit-Tests.st SUnit.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l SUnit $< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Documentation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Documentation.js: Documentation.st Canvas.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Canvas $<; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-#Helios 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Helios-Core.js: Helios-Core.st Canvas.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Canvas $<; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Helios-Browser.js: Helios-Browser.st Helios-Core.js Compiler.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	$(AMBERC) $(FLAGS) -l Helios-Core $<; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# Installing is simply copying all js files to js directory. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-install: all 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	cp *.js $(JS) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# And cleaning is trivial also 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-clean: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	rm -f *.js 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-# These three are phony 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-.PHONY: all install clean 
			 |