aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: d291d0690324879dc81309d8ea531aeb06772cec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
################################################################
# 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