.PHONY:		all install test dry gctest run testrun gcrun gctestrun

VERSION=	0.1.12
LGC1=		export LD_LIBRARY_PATH=../common; ./lgc -m 100M
LGC2=		export LD_LIBRARY_PATH=../common; ./lgc2 -m 100M
LGWAM=		build/src/lgwam
GCARG=		-DHEAPSIZE=1000000 -DALWAYSGC=TRUE
WWW=		../doc/page
LGCARG=		level=submit url=file:${WWW} roots=,file:${WWW},${WWW} \
		cache=../doc/cache userconf= localconf= \
		dest='$$PAGE$$/$$DATE$$'
PAGES=		build/src/testsuite/pages

all:		${WWW}/lgc/latest/lgwdir.html \
		${WWW}/combinations/latest/lgwdir.html \
		${WWW}/multzero/latest/lgwdir.html \
		${WWW}/testmachine/latest/lgwdir.html \
		${LGWAM} source
build/src/pages.c:\
		${WWW}/lgc/latest/lgwdir.html
		cat ../doc/cache/base ../doc/cache/lgc > build/src/pages
		cd build/src ; xxd -i pages pages.c
		rm build/src/pages
${LGWAM}:	${LGWAM}.c build/src/pages.c
		cc -ldl -DVERSION=${VERSION} -o ${LGWAM} ${LGWAM}.c
install:
		cp ${LGWAM} /usr/bin/lgwam

amtest:		${LGWAM}
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} test
dry:		${LGWAM}
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} dry
gctest:
		cc -ldl -o ${LGWAM} ${GCARG} ${LGWAM}.c
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} test
		touch ${LGWAM}.c

run:		${LGWAM} hello
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script hello
testrun:	${LGWAM} test1
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} testrun test1
gcrun:		hello
		cc -ldl -o ${LGWAM} ${GCARG} ${LGWAM}.c
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script hello
		touch ${LGWAM}.c
gctestrun:	hello
		cc -ldl -o ${LGWAM} ${GCARG} ${LGWAM}.c
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} testrun test1
		touch ${LGWAM}.c

${WWW}/base/latest/lgwdir.html:\
		base.lgs
		${LGC1} base ${LGCARG} bin=. machine=eecho
${WWW}/lgc/latest/lgwdir.html:\
		lgc.lgs ${WWW}/base/latest/lgwdir.html build/src/version
		${LGC1} lgc ${LGCARG} bin=build/src
${WWW}/check/latest/lgwdir.html:\
		check.lgs ${WWW}/base/latest/lgwdir.html
		${LGC1} check ${LGCARG}
${WWW}/Peano/latest/lgwdir.html:\
		Peano.lgs ${WWW}/check/latest/lgwdir.html
		${LGC1} Peano ${LGCARG}
${WWW}/combinations/latest/lgwdir.html:\
		lgc2 combinations.lgs
		${LGC2} combinations ${LGCARG}
${WWW}/multzero/latest/lgwdir.html:\
		lgc2 multzero.lgs
		${LGC2} multzero ${LGCARG}
${WWW}/testmachine/latest/lgwdir.html:\
		lgc2 testmachine.lgs ${WWW}/test/latest/lgwdir.html
		${LGC2} testmachine ${LGCARG} bin=.
${WWW}/test/latest/lgwdir.html:\
		lgc2 ../test/testsuite.lgs
		${LGC2} spy=true ../test/testsuite.lgs ${LGCARG}

lgc2:		${WWW}/Peano/latest/lgwdir.html
		${LGC1} dump ${LGCARG} dump=lgc2

hello:		${WWW}/base/latest/lgwdir.html ${LGWAM}
echo:		${WWW}/base/latest/lgwdir.html ${LGWAM}
eecho:		${WWW}/base/latest/lgwdir.html ${LGWAM}
lgciotest:	${WWW}/base/latest/lgwdir.html ${LGWAM}
test1:		${WWW}/testmachine/latest/lgwdir.html ${LGWAM}
build/src/lgc:	${WWW}/lgc/latest/lgwdir.html ${LGWAM}

runhello:	hello
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script hello
runecho:	echo
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script echo
runeecho:	eecho
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script eecho
runlgciotest:	lgciotest
		export LGW_PATH=../doc/cache/:/page.lgr; \
		${LGWAM} script lgciotest
runtest1:	test1
		export LGW_PATH=../doc/cache/:/page.lgr; ${LGWAM} script test1

fingerprint:
		lgc -m 100M base optidump=fingerprint.lisp
test:		build/src/lgc source
		cd build/src/testsuite;./test

source:		build/src/base.lgs build/src/lgc.lgs build/src/version \
		${PAGES}/check.lgs ${PAGES}/Peano.lgs \
		${PAGES}/combinations.lgs ${PAGES}/multzero.lgs \
		${PAGES}/test.lgs ${PAGES}/testmachine.lgs \
		build/src/logiweb.eps build/src/logiweb.ico \
		build/src/logiweb.png \
		build/CHANGELOG build/COPYING
translate:	translate.c
		gcc -o translate translate.c
build/src/base.lgs:\
		translate base.lgs
		./translate base.lgs build/src/base.lgs
build/src/lgc.lgs:\
		translate lgc.lgs
		./translate lgc.lgs build/src/lgc.lgs
build/src/version:
		${MAKE} -C build version
${PAGES}/check.lgs:\
		translate check.lgs
		./translate check.lgs ${PAGES}/check.lgs
${PAGES}/Peano.lgs:\
		translate Peano.lgs
		./translate Peano.lgs ${PAGES}/Peano.lgs
${PAGES}/combinations.lgs:\
		translate combinations.lgs
		./translate combinations.lgs ${PAGES}/combinations.lgs
${PAGES}/multzero.lgs:\
		translate multzero.lgs
		./translate multzero.lgs ${PAGES}/multzero.lgs
${PAGES}/test.lgs:\
		translate ../test/testsuite.lgs
		./translate ../test/testsuite.lgs ${PAGES}/test.lgs
${PAGES}/testmachine.lgs:\
		translate testmachine.lgs
		./translate testmachine.lgs ${PAGES}/testmachine.lgs
build/src/logiweb.eps: \
		logiweb.eps
		cp logiweb.eps build/src/logiweb.eps
build/src/logiweb.ico: \
		logiweb.ico
		cp logiweb.ico build/src/logiweb.ico
build/src/logiweb.png: \
		logiweb.png
		cp logiweb.png build/src/logiweb.png
build/CHANGELOG:
		cp ../CHANGELOG build/
build/COPYING:
		cp ../copying build/COPYING
