186 lines
5.5 KiB
Makefile
186 lines
5.5 KiB
Makefile
# This Makefile requires GNU make.
|
|
|
|
# IF YOU HAVE TROUBLE COMPILING, JUST REMOVE SOME MODULES
|
|
# AND GREEK CLANGS FIRST.
|
|
|
|
#
|
|
# Modules
|
|
# - which modules (directories in ../Modules) to compile in
|
|
#
|
|
MODULES=applet mbox joystick test 3d xml extern prez \
|
|
textcloud daytimedemo hypergenealogy nile notemap \
|
|
benchmark zaubertrank mind \
|
|
$(EXTRA)
|
|
|
|
#
|
|
# Clangs
|
|
# - which clangs (directories in clang/) to compile in
|
|
#
|
|
GREEKCLANG=heraclitus flowing #thales
|
|
# (flowing's not a GREEK clang really, but make doesn't care...)
|
|
|
|
#
|
|
# Architectures
|
|
# - which architecture-dependent code to compile
|
|
# (directories in arch/)
|
|
# ARCH=
|
|
|
|
# Default: none - set on command line.
|
|
|
|
# Put here the shell argument line to generate the build tag for the
|
|
# window title
|
|
BUILD_TAG := $(shell echo "Custom CVS Build `date -u +%Y-%m-%dT%H:%M:%SZ` by `whoami`@`hostname`")
|
|
|
|
# NOT COMPILED BY DEFAULT:
|
|
# sound xml applet
|
|
|
|
# It would be nice to use standard paths !
|
|
#
|
|
#JAVA_LIB=/usr/local/java/lib
|
|
JAVA_DOC=/usr/local/java/docs/api
|
|
|
|
JAVADOCOPTS=-use -version -author -windowtitle "GZigZag Java API"
|
|
|
|
TEMP=/tmp
|
|
|
|
ZOB:=$(wildcard *.zob) $(wildcard */*.zob) \
|
|
$(foreach module,$(MODULES),$(wildcard ../Modules/$(module)/*.zob)) \
|
|
$(foreach clang,$(GREEKCLANG),$(wildcard clang/$(clang)/*.zob) $(wildcard clang/$(clang)/*/*.zob)) \
|
|
$(foreach arch,$(ARCH),$(wildcard arch/$(arch)/*.zob))
|
|
|
|
ifeq ($(findstring ztp, $(MODULES)),ztp)
|
|
ZOB += $(wildcard ../Modules/ztp/*/*.zob)
|
|
endif
|
|
|
|
AUTOGENSRC := clang/ZZClangOps.java $(ZOB:.zob=.java) storage/Recs.java
|
|
AUTOGENERATED := $(AUTOGENSRC)
|
|
|
|
%.java: %.zob zob2java.pl ; perl zob2java.pl $< $@
|
|
|
|
# Can't add ZZClangOps since javac complains of doubly defined class...
|
|
# maybe should use uniq?
|
|
SRC0:=$(wildcard *.java) $(wildcard media/*.java) $(wildcard clang/*.java) \
|
|
$(wildcard storage/*.java) $(wildcard errors/*.java) \
|
|
$(wildcard flob/*.java) $(wildcard transform/*.java) \
|
|
$(wildcard part/*.java) \
|
|
$(foreach module,$(MODULES),$(wildcard ../Modules/$(module)/*.java)) \
|
|
$(foreach clang,$(GREEKCLANG),$(wildcard clang/$(clang)/*.java) $(wildcard clang/$(clang)/*/*.java)) \
|
|
$(foreach arch,$(ARCH),$(wildcard arch/$(arch)/*.java)) \
|
|
$(AUTOGENSRC)
|
|
|
|
ifeq ($(findstring ztp, $(MODULES)),ztp)
|
|
SRC0 += ../Modules/ztp/*/*.java
|
|
endif
|
|
|
|
SRC:=$(shell echo $(SRC0) | perl -pe 's/\s+/\n/g' - | sort | uniq | tee /tmp/foo)
|
|
|
|
jikes := $(shell which jikes)
|
|
# DEBUG=-g
|
|
|
|
ifeq (,$(JAVAC))
|
|
ifneq (,$(jikes))
|
|
JAVAC=jikes +P
|
|
else
|
|
JAVAC=javac
|
|
endif
|
|
endif
|
|
|
|
JAVANCSS=/BIG/javancss9.24/javancss
|
|
|
|
archcompile = set -e; for d in "$(ARCH)"; do if [ -e arch/$(ARCH)/arch.mk ] ; then $(MAKE) -f arch/$(ARCH)/arch.mk; fi; done
|
|
archclean = set -e; for d in "$(ARCH)"; do if [ -e arch/$(ARCH)/arch.mk ] ; then $(MAKE) -f arch/$(ARCH)/arch.mk clean; fi; done
|
|
|
|
# all must compile everywhere
|
|
all: $(SRC)
|
|
@echo "*** NOTE: YOU MAY HAVE TO RUN 'make' MORE THAN ONE TIME"
|
|
@echo "*** TO GET EVERYTHING TO COMPILE DUE TO DEPENDENCIES"
|
|
rm -f BuildInfo.java
|
|
sed 's/@@@@@/$(BUILD_TAG)/' BuildInfo.java.in > BuildInfo.java.new && mv BuildInfo.java.new BuildInfo.java
|
|
$(JAVAC) -deprecation $(DEBUG) -d . BuildInfo.java
|
|
$(JAVAC) -deprecation $(DEBUG) -d . $(SRC)
|
|
$(archcompile)
|
|
|
|
# If you want to try out the opengl stuff
|
|
opengl:
|
|
@echo "********************************************"
|
|
@echo "* requires gltt !! *"
|
|
@echo "* add ../Modules/openGL to LD_LIBRARY_PATH *"
|
|
@echo "********************************************"
|
|
(cd ../Modules/openGL; make)
|
|
$(JAVAC) -deprecation $(DEBUG) -d . ../Modules/openGL/*.java
|
|
|
|
doc:: $(SRC)
|
|
sh ./make-src-tree.sh $(TEMP)/zzsrc
|
|
rm -Rf doc
|
|
mkdir doc
|
|
javadoc $(JAVADOCOPTS) -d doc -sourcepath $(TEMP)/zzsrc org.gzigzag \
|
|
org.gzigzag.clang \
|
|
org.gzigzag.module
|
|
rm -Rf $(TEMP)/zzsrc
|
|
|
|
zobdoc:: $(SRC)
|
|
sh ./make-src-tree.sh $(TEMP)/zzsrc
|
|
rm -Rf zobdoc
|
|
mkdir zobdoc
|
|
javadoc -doclet org.gzigzag.ZobDoc -d zobdoc \
|
|
-sourcepath $(TEMP)/zzsrc \
|
|
org.gzigzag org.gzigzag.clang org.gzigzag.module
|
|
rm -Rf $(TEMP)/zzsrc
|
|
|
|
|
|
# perl -pi.bak -e's|</h1>|"</h1>".`cat Package.html`|e' doc/Package-org.gzigzag.html
|
|
|
|
MODULESUPPORT=no
|
|
JARMODULES=applet mbox joystick test 3d xml extern prez \
|
|
textcloud daytimedemo hypergenealogy nile notemap zaubertrank mind
|
|
JARARCHES=
|
|
JARNAME=gzigzag.jar
|
|
jar: buildir=$(JARNAME).build
|
|
jar:
|
|
cd .. && ./makedist.sh Java/$(buildir)
|
|
-$(MAKE) -C $(buildir)/Java ARCH="$(JARARCHES)" MODULES="$(JARMODULES)" all
|
|
-$(MAKE) -C $(buildir)/Java MODULES="$(JARMODULES)" allRCH="$(JARARCHES)"
|
|
-$(MAKE) -C $(buildir)/Java ARCH="$(JARARCHES)" MODULES="$(JARMODULES)" all
|
|
$(MAKE) -C $(buildir)/Java ARCH="$(JARARCHES)" MODULES="$(JARMODULES)" all
|
|
echo 'Main-Class: org.gzigzag.Main' > $(buildir)/Java/manifest
|
|
set -e ; if [ "$(MODULESUPPORT)" != "no" ] ; \
|
|
then \
|
|
(cd $(buildir)/Java && jar -xvf $(MODULESUPPORT) gnu org) ;\
|
|
fi
|
|
cd $(buildir)/Java && cp ../LICENSE.lgpl ../LICENSE.xpl .
|
|
cd $(buildir)/Java && cp ../README README.source
|
|
cd $(buildir)/Java && jar cvfm $(JARNAME) manifest fi foo xanadu gnu org README README.source LICENSE*
|
|
mv $(buildir)/Java/$(JARNAME) .
|
|
rm -rf $(buildir)
|
|
|
|
|
|
mvdoc: doc
|
|
scp -r doc/* tjl@gzigzag.sourceforge.net:/home/groups/gzigzag/www/javadoc/
|
|
|
|
%.java: %.pl
|
|
perl $< $@
|
|
|
|
clean:
|
|
rm -rf fi foo xanadu org
|
|
rm -f $(AUTOGENERATED)
|
|
rm -f BuildInfo.java clang/ZZClangOps.java
|
|
$(archclean)
|
|
|
|
tags: $(SRC)
|
|
ctags $(SRC)
|
|
|
|
CVS2CL=cvs2cl
|
|
|
|
ChangeLog::
|
|
$(MAKE) -C .. ChangeLog
|
|
|
|
ncss:: $(SRC)
|
|
$(JAVANCSS) -function $(SRC) | perl mungencss.pl | \
|
|
sort -rnk3 -k1 >ncss-ccn
|
|
sort -rnk2 -k1 <ncss-ccn >ncss-ncss
|
|
sort -rnk4 -k1 <ncss-ccn >ncss-jvdc
|
|
# $(JAVANCSS) -all $(SRC) >ncss
|
|
|
|
|
|
|