################################################################
# 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 . -J-Xmx100m
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 .

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

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 \
	target/generated-sources/prologcafe-builtin/jp/ac/kobe_u/cs/prolog/builtin/*.java \
	src/compiler/pl2am/*.java src/compiler/am2j/*.java src/compiler/Compiler.java
	$(JAR) $(JAROPTS) plcafe.jar jp/ac/kobe_u/cs/prolog

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 jp
	-rm -f core *~

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
