################################################################
# Makefile
################################################################
# PROLOG - the command of Prolog system 
#        ::= sicstus | swipl | pl | prolog | ...
# PSYSTEM- the type of Prolog system 
#        ::= 'SICStus' | 'SWI-Prolog' | 'Others'

PROLOG  = swipl
PSYSTEM = 'SWI-Prolog'
# PROLOG  = sicstus
# PSYSTEM = 'SICStus'
# PROLOG  = prolog
# PSYSTEM = 'Others'

JAVA      = java
JAVAC     = javac
JAVACOPTS = -d .
JAR       = jar
JAROPTS   = cf

PWD := $(shell pwd)
################################################################
all: plc lang builtin compiler plcafe plj

plc:
	(cd src/compiler; $(MAKE) plc \
	PROLOG='$(PROLOG)' PSYSTEM='$(PSYSTEM)')
	cp src/compiler/pl2am.plc bin/
	cp src/compiler/am2j.plc bin/

lang:
	(cd src/lang; $(MAKE) lang \
	JAVAC='$(JAVAC)' JAVACOPTS='$(JAVACOPTS)' \
	JAR='$(JAR)' JAROPTS='$(JAROPTS)')
	cp src/lang/lang.jar .

gen-builtin:
	(cd src/builtin && $(MAKE) gen-builtin)
builtin:
	(cd src/builtin; $(MAKE) builtin \
	JAVAC='$(JAVAC)' JAVACOPTS='$(JAVACOPTS) -classpath $(PWD)/lang.jar' \
	JAR='$(JAR)' JAROPTS='$(JAROPTS)')
	cp src/builtin/builtin.jar .

gen-compiler:
	(cd src/compiler && $(MAKE) gen-compiler)
compiler:
	(cd src/compiler; $(MAKE) compiler \
	JAVAC='$(JAVAC)' \
	JAVACOPTS='$(JAVACOPTS) -classpath $(PWD)/lang.jar:$(PWD)/builtin.jar' \
	JAR='$(JAR)' JAROPTS='$(JAROPTS)')
	cp src/compiler/compiler.jar .

plcafe:
	$(JAVAC) $(JAVACOPTS) \
	  src/lang/*.java \
	  src/builtin/*.java \
	  src/compiler/*.java \
	  target/generated-sources/prologcafe-builtin/com/googlecode/prolog_cafe/builtin/*.java \
	  target/generated-sources/prologcafe-pl2am/com/googlecode/prolog_cafe/compiler/pl2am/*.java \
	  target/generated-sources/prologcafe-am2j/com/googlecode/prolog_cafe/compiler/am2j/*.java
	$(JAR) $(JAROPTS) plcafe.jar com/googlecode/prolog_cafe

plj:
	(cd src/compiler; $(MAKE) plj PROLOG='$(JAVA)')
	cp src/compiler/pl2am.plj bin/
	cp src/compiler/am2j.plj bin/
################################################################
clean:
	(cd src/builtin; $(MAKE) clean)
	(cd src/lang; $(MAKE) clean)
	(cd src/compiler; $(MAKE) clean)
	-rm -f bin/pl2am.plc
	-rm -f bin/am2j.plc
	-rm -f -r com
	-rm -f core *~
	-rm -r -f target

realclean: clean
	(cd src/builtin; $(MAKE) realclean)
	(cd src/lang; $(MAKE) realclean)
	(cd src/compiler; $(MAKE) realclean)
	-rm -f -r doc/javadoc
	-rm -f bin/pl2am.plj
	-rm -f bin/am2j.plj
	-rm -f plcafe.jar
	-rm -f compiler.jar
	-rm -f builtin.jar
	-rm -f lang.jar
################################################################
ex:
	(cd examples;  $(MAKE) all)
################################################################
JAVADOC      = javadoc
JAVADOCOPTS  = -J-Xmx100m \
	       -locale en_US -d doc/javadoc -breakiterator \
               -windowtitle $(WINDOWTITLE) -doctitle $(DOCTITLE) \
               -header $(HEADER) -bottom $(BOTTOM)

WINDOWTITLE  = 'Prolog Cafe v1.2 API Specification'
DOCTITLE     = 'Prolog Cafe v1.2 API Specification'
HEADER       = '<b><font color="red">Prolog Cafe v1.2</font></b><br>'
BOTTOM       = '<font size="-1"> \
                 Copyright (C) 1997-2009 \
                 <a href="http://kaminari.istc.kobe-u.ac.jp/banbara.html">M.BANBARA</a> and \
                 <a href="http://bach.istc.kobe-u.ac.jp/tamura.html">N.TAMURA</a> \
               </font>'

javadoc: 
	$(JAVADOC) $(JAVADOCOPTS) src/lang/*.java \
	src/compiler/Compiler.java
################################################################
VER = 1.2.5
DIR = PrologCafe$(VER)
TGZ = PrologCafe$(VER).tgz
ZIP = PrologCafe$(VER).zip

tar: clean
	(cd ..; tar cfz $(DIR)/$(TGZ) $(DIR)/*)

zip: clean
	(cd ..; zip -r $(DIR)/$(ZIP) $(DIR)/*)
################################################################
# END
