36cb2beb8174c1c1e5a04d24038769701a05ebeeDav Glass# -- Constants -----------------------------------------------------------------
36cb2beb8174c1c1e5a04d24038769701a05ebeeDav Glass
36cb2beb8174c1c1e5a04d24038769701a05ebeeDav Glass# Path to the "lib" directory of a Handlebars.js git checkout.
36cb2beb8174c1c1e5a04d24038769701a05ebeeDav GlassHANDLEBARS_LIB = $(PWD)/../../../handlebars.js/lib
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# Path to which YUI Handlebars source files should be written.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyOUTPUT_DIR = $(PWD)/js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# Comment to prepend to the imported source files.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyPREPEND_COMMENT = /* THIS FILE IS GENERATED BY A BUILD SCRIPT - DO NOT EDIT! */\n
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# Files that make up the handlebars-base module. We intentionally skip utils.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# because we've reimplemented that for YUI.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyBASE_FILES = \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/base.js \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/runtime.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# Files that make up the handlebars-compiler module.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyCOMPILER_FILES = \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/compiler/parser.js \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/compiler/base.js \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/compiler/ast.js \
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney $(HANDLEBARS_LIB)/handlebars/compiler/compiler.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# -- Targets -------------------------------------------------------------------
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyBASE_TARGETS = $(addprefix $(OUTPUT_DIR)/handlebars-, $(notdir $(BASE_FILES)))
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt SweeneyCOMPILER_TARGETS = $(addprefix $(OUTPUT_DIR)/handlebars-compiler-, $(notdir $(COMPILER_FILES)))
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: all - Default target.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyall: import
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: clean - Removes imported source files.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyclean:
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney rm -f $(BASE_TARGETS) $(COMPILER_TARGETS)
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: import - Imports Handlebars.js source files from a separate repo.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyimport: import-base import-compiler
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: import-base - Imports the source files that make up handlebars-base.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyimport-base: $(BASE_TARGETS)
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: import-compiler - Imports the source files that make up handlebars-compiler.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyimport-compiler: $(COMPILER_TARGETS)
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney# target: help - Displays help.
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeneyhelp:
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @egrep "^# target:" Makefile
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney$(OUTPUT_DIR)/handlebars-%.js: $(HANDLEBARS_LIB)/handlebars/%.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(notdir $@)"
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(PREPEND_COMMENT)" > $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @sed -n '/^\/\/ BEGIN(BROWSER)$$/,/^\/\/ END(BROWSER)$$/p' $< >> $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney$(OUTPUT_DIR)/handlebars-compiler-%.js: $(HANDLEBARS_LIB)/handlebars/compiler/%.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(notdir $@)"
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(PREPEND_COMMENT)" > $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @sed -n '/^\/\/ BEGIN(BROWSER)$$/,/^\/\/ END(BROWSER)$$/p' $< >> $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney$(OUTPUT_DIR)/handlebars-compiler-parser.js: $(HANDLEBARS_LIB)/handlebars/compiler/parser.js
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(notdir $@)"
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @echo "$(PREPEND_COMMENT)" > $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney @cat $< >> $@
7360d0583edbc1cd77cd7e6d85ee9bcc26e3211dMatt Sweeney