| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | ## This Makefile takes .st files in the jtalk/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 installJS	:= ../js/# The compiler scriptJTALKC	:= ../bin/jtalkc# Generic flags to JTALKCFLAGS   := -d# All corresponding js filenames for every st file available# In other words, if we have Kernel.st and Parser.st, then OBJECTS will be "Kernel.js Parser.js"OBJECTS := $(patsubst %.st,%.js,$(wildcard *.st))# Default make target since it is the first target in this Makefileall: Examples.js# Step by step## First we copy the core javascript files from current working files# into this directory. These files are hand written. $@ is the target name.boot.js init.js:	cp ../js/$@ .# Then we compile Kernel.st depending on having using boot.js and init.js# $< means the first dependency - in other words Kernel.stKernel.js: Kernel.st boot.js init.js	$(JTALKC) $(FLAGS) $<# ...then Parser, but using the new Kernel from step above.# We only need to depend on Kernel.js since it in turn depends on boot.js and init.js.Parser.js: Parser.st Kernel.js	$(JTALKC) $(FLAGS) $<# ...and Compiler, but using the new Parser and Kernel from above.# We only need to depend on Parser.js since it in turn depends on Kernel.js, boot.js etcCompiler.js: Compiler.st Parser.js	$(JTALKC) $(FLAGS) $<# ...now that we have a new Kernel/Parser/Compiler we use them# to compile the rest of st files presuming that they only depend on Compiler, like# for example Canvas.js and Benchfib.js.%.js: %.st Compiler.js 	$(JTALKC) $(FLAGS) $<# But for some libraries there are 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.## JQuery uses CanvasJQuery.js: JQuery.st Canvas.js	$(JTALKC) $(FLAGS) -L CANVAS $<# IDE uses JQueryIDE.js: IDE.st JQuery.js	$(JTALKC) $(FLAGS) -L JQUERY $<# The SUnit TestRunner uses UI stuff from IDE.SUnit.js: SUnit.st IDE.js	$(JTALKC) $(FLAGS) -L IDE $<# Some Examples use SUnitExamples.js: Examples.st SUnit.js	$(JTALKC) $(FLAGS) -L IDE -l SUnit $<;# Installing is simply copying all js files to js directory.install: all	cp *.js $(JS)# And cleaning is trivial alsoclean:	rm -f *.js; # These three are phony.PHONY: all install clean
 |