Constraint-based three-dimensional dynamic geometry
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.5 KiB

GENEXT = src/helpers/pkglock_to_externals.litcoffee
GENDOC = doc/gendoc.litcoffee
DOCFILES = $(shell coffee $(GENDOC) -list)
COFFILES = $(wildcard src/*.litcoffee)
JSFILES = $(patsubst src/%.litcoffee,site/%.js,$(COFFILES))
HTMLSRC = $(wildcard src/*.html)
HTMLSITE = $(patsubst src/%,site/%,$(HTMLSRC))
BLDTARGS = $(JSFILES) site/externals.js site/doc/dyna3.html $(HTMLSITE) site/node_modules
TESTCOFF = $(wildcard coffeetest/*.coffee)
TESTJS = $(patsubst coffeetest/,__tests__/%.js,$(TESTCOFF))
build: $(BLDTARGS)
site/externals.js: $(GENEXT) package.json package-lock.json
mkdir -p site
coffee $(GENEXT) > $@
site/%.js: src/%.litcoffee
coffee -o $@ -c -m $<
docbuild/ $(GENEXT) package.json package-lock.json
mkdir -p docbuild
coffee $(GENEXT) --doc > $@
site/doc/ $(DOCFILES)
mkdir -p site/doc
coffee $(GENDOC) > $@
site/doc/dyna3.html: site/doc/
pandoc -s --metadata title='dyna3' --toc $< > $@
site/%.html: src/%.html
mkdir -p site
cp $< $@
site/node_modules: node_modules package.json package-lock.json
rm -rf tmpproj
mkdir tmpproj
mkdir -p site
cp package.json package-lock.json tmpproj
cd tmpproj && npm install --production
cp -r tmpproj/node_modules site
touch site/node_modules $(BLDTARGS)
zip -r $@ site
__tests__/%.js: coffeetest/
coffee -o $@ -c -m $<
$(BLDTARGS) $(TESTJS): Makefile
doc: site/doc/
pretest: $(BLDTARGS) $(TESTJS)
npm test
rm -rf site docbuild tmpproj __tests__ coverage