summaryrefslogtreecommitdiff
path: root/src/Makefile
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-25 16:54:35 +0000
commite9e80fc389365e24d4300d7d5390c7d833a96c50 (patch)
treef0b58473adaa670bd8fc52ada419d8cad470ee03 /src/Makefile
parentb96b36f43de3e2f8b58d5f539daa6f6d47f25870 (diff)
changed names of resource-1.3; added a note on homepage on release
Diffstat (limited to 'src/Makefile')
-rw-r--r--src/Makefile320
1 files changed, 320 insertions, 0 deletions
diff --git a/src/Makefile b/src/Makefile
new file mode 100644
index 000000000..08de81434
--- /dev/null
+++ b/src/Makefile
@@ -0,0 +1,320 @@
+include config.mk
+
+
+GHMAKE=$(GHC) --make
+GHCXMAKE=ghcxmake
+GHCFLAGS+= -fglasgow-exts
+GHCOPTFLAGS=-O2
+GHCFUDFLAG=
+JAVAFLAGS=-target 1.4 -source 1.4
+GFEDITOR=JavaGUI2
+
+DIST_DIR=GF-$(PACKAGE_VERSION)
+NOT_IN_DIST= \
+ grammars \
+ download \
+ doc/release2.html \
+ src/tools/AlphaConvGF.hs
+
+BIN_DIST_DIR=$(DIST_DIR)-$(host)
+
+GRAMMAR_PACKAGE_VERSION=$(shell date +%Y%m%d)
+GRAMMAR_DIST_DIR=gf-grammars-$(GRAMMAR_PACKAGE_VERSION)
+
+MSI_FILE=gf-$(subst .,_,$(PACKAGE_VERSION)).msi
+
+GF_DATA_DIR=$(datadir)/GF-$(PACKAGE_VERSION)
+GF_LIB_DIR=$(GF_DATA_DIR)/lib
+
+EMBED = GF/Embed/TemplateApp
+
+# use the temporary binary file name 'gf-bin' to not clash with directory 'GF'
+# on case insensitive file systems (such as FAT)
+GF_EXE=gf3$(EXEEXT)
+GF_EXE_TMP=gf-bin$(EXEEXT)
+GF_DOC_EXE=gfdoc$(EXEEXT)
+GF3_EXE=gf3$(EXEEXT)
+TESTGF3_EXE=testgf3$(EXEEXT)
+
+
+ifeq ("$(READLINE)","readline")
+ GHCFLAGS += -package readline -DUSE_READLINE
+endif
+
+ifneq ("$(CPPFLAGS)","")
+ GHCFLAGS += $(addprefix -optP, $(CPPFLAGS))
+endif
+
+ifneq ("$(LDFLAGS)","")
+ GHCFLAGS += $(addprefix -optl, $(LDFLAGS))
+endif
+
+ifeq ("$(INTERRUPT)","yes")
+ GHCFLAGS += -DUSE_INTERRUPT
+endif
+
+ifeq ("$(ATK)","yes")
+ GHCFLAGS += -DUSE_ATK
+endif
+
+ifeq ("$(ENABLE_JAVA)", "yes")
+ BUILD_JAR=jar
+else
+ BUILD_JAR=
+endif
+
+.PHONY: all unix jar tags gfdoc windows install install-gf \
+ lib temp install-gfdoc install-editor \
+ today help clean windows-msi dist
+
+all: unix gfdoc $(BUILD_JAR) lib
+
+static: GHCFLAGS += -optl-static
+static: unix
+
+
+gf: unix
+
+unix: today opt
+
+windows: unix
+
+temp: today noopt
+
+
+
+build:
+ $(GHMAKE) $(GHCFLAGS) GF.hs -o $(GF_EXE_TMP)
+ strip $(GF_EXE_TMP)
+ mv $(GF_EXE_TMP) ../bin/$(GF_EXE)
+
+opt: GHCFLAGS += $(GHCOPTFLAGS)
+opt: build
+
+embed: GHCFLAGS += $(GHCOPTFLAGS)
+embed:
+ $(GHMAKE) $(GHCFLAGS) $(EMBED) -o $(EMBED)
+ strip $(EMBED)
+
+noopt: build
+
+ghci: ghci-nofud
+
+fud:
+ $(GHCXMAKE) $(GHCFLAGS) $(GHCFUDFLAG) GF.hs -o fgf
+ strip fgf
+ mv fgf ../bin/
+
+gft:
+ $(GHMAKE) $(GHCFLAGS) -itranslate translate/GFT.hs -o gft-bin
+ strip gft-bin
+ mv gft-bin ../bin/gft
+
+api:
+ $(GHMAKE) $(GHCFLAGS) $(GHCOPTFLAGS) GF/API.hs
+
+shell:
+ $(GHMAKE) $(GHCFLAGS) $(GHCOPTFLAGS) GF/Shell.hs
+
+clean:
+ find . '(' -name '*~' -o -name '*.hi' -o -name '*.ghi' -o -name '*.o' ')' -exec rm -f '{}' ';'
+ -rm -f JavaGUI/*.class
+ -rm -f $(GFEDITOR)/de/uka/ilkd/key/ocl/gf/*.class
+ -rm -f gf.wixobj
+ -rm -f ../bin/$(GF_EXE)
+ $(MAKE) -C tools/c clean
+ $(MAKE) -C ../lib/c clean
+ -rm -f ../bin/gfcc2c
+
+distclean: clean
+ -rm -f JavaGUI/gf-java.jar jgf
+ -rm -f $(GFEDITOR)/gfeditor.jar jgf
+ -rm -f tools/$(GF_DOC_EXE)
+ -rm -f config.status config.mk config.log
+ -rm -f *.tgz *.zip
+ -rm -rf $(DIST_DIR) $(BIN_DIST_DIR)
+ -rm -rf gf.wxs *.msi
+
+ghci-nofud:
+ $(GHCI) $(GHCFLAGS)
+
+today:
+ echo 'module Paths_gf (version, getDataDir) where' > Paths_gf.hs
+ echo 'import Data.Version' >> Paths_gf.hs
+ echo '{-# NOINLINE version #-}' >> Paths_gf.hs
+ echo 'version :: Version' >> Paths_gf.hs
+ echo 'version = Version {versionBranch = [3,0], versionTags = ["alpha"]}' >> Paths_gf.hs
+ echo 'getDataDir = return $(GF_DATA_DIR) :: IO FilePath' >> Paths_gf.hs
+
+javac:
+ $(JAVAC) $(JAVAFLAGS) -classpath $(GFEDITOR)/jargs-1.0.jar $(GFEDITOR)/de/uka/ilkd/key/ocl/gf/*.java
+ $(JAVAC) $(JAVAFLAGS) JavaGUI/*.java
+
+jar: javac
+ cd JavaGUI; $(JAR) -cmf manifest.txt gf-java.jar *.class ; cd ..
+ cd $(GFEDITOR) ; rm -rf jarcontents ; mkdir jarcontents ; cp -r de ManifestMain.txt ../../LICENSE LICENCE_jargs gf-icon.gif jarcontents ; cat jargs-1.0.jar | (cd jarcontents; jar -x jargs) ; cd jarcontents ; $(JAR) -cmf ManifestMain.txt ../gfeditor.jar de/uka/ilkd/key/ocl/gf/*.class jargs LICENSE LICENCE_jargs gf-icon.gif ; cd .. ; cd ..
+
+showflags:
+ @echo $(GHCFLAGS)
+
+# added by peb:
+tracing: GHCFLAGS += -DTRACING
+tracing: temp
+
+ghci-trace: GHCFLAGS += -DTRACING
+ghci-trace: ghci
+
+#touch-files:
+# rm -f GF/System/Tracing.{hi,o}
+# touch GF/System/Tracing.hs
+
+# profiling
+prof: GHCOPTFLAGS += -prof -auto-all -auto-dicts
+prof: all
+
+tags:
+ find GF Transfer -name '*.hs' | xargs hasktags
+
+#
+# Help file
+#
+
+tools/MkHelpFile: tools/MkHelpFile.hs
+ $(GHMAKE) -o $@ $^
+
+help: GF/Shell/HelpFile.hs
+
+GF/Shell/HelpFile.hs: tools/MkHelpFile HelpFile
+ tools/MkHelpFile
+
+#
+# Tools
+#
+
+gfdoc: tools/$(GF_DOC_EXE)
+
+tools/$(GF_DOC_EXE): tools/GFDoc.hs
+ $(GHMAKE) $(GHCOPTFLAGS) -o $@ $^
+
+gfc: gf3
+ cp -f gfc ../bin/
+ chmod a+x ../bin/gfc
+
+gfi: gf3
+
+gf3:
+ $(GHMAKE) $(GHCOPTFLAGS) $(GHCFLAGS) -o gf3 GF.hs
+ strip $(GF3_EXE)
+ mv $(GF3_EXE) ../bin/
+
+testgf3:
+ $(GHMAKE) $(GHCOPTFLAGS) -o testgf3 GF/Devel/TestGF3.hs
+ strip $(TESTGF3_EXE)
+ mv $(TESTGF3_EXE) ../bin/
+
+gfcc2c:
+ $(MAKE) -C tools/c
+ $(MAKE) -C ../lib/c
+ mv tools/c/gfcc2c ../bin
+
+#
+# Resource grammars
+#
+
+lib:
+ $(MAKE) -C ../lib/resource clean new
+
+#
+# Distribution
+#
+
+dist:
+ -rm -rf $(DIST_DIR)
+ darcs dist --dist-name=$(DIST_DIR)
+ tar -zxf ../$(DIST_DIR).tar.gz
+ rm ../$(DIST_DIR).tar.gz
+ cd $(DIST_DIR)/src && perl -pi -e "s/^AC_INIT\(\[GF\],\[[^\]]*\]/AC_INIT([GF],[$(PACKAGE_VERSION)]/" configure.ac
+ cd $(DIST_DIR)/src && autoconf && rm -rf autom4te.cache
+# cd $(DIST_DIR)/grammars && sh mkLib.sh
+ cd $(DIST_DIR) && rm -rf $(NOT_IN_DIST)
+ $(TAR) -zcf $(DIST_DIR).tgz $(DIST_DIR)
+ rm -rf $(DIST_DIR)
+
+snapshot: PACKAGE_VERSION=$(shell date +%Y%m%d)
+snapshot: DIST_DIR=GF-$(PACKAGE_VERSION)
+snapshot: dist
+
+rpm: dist
+ rpmbuild -ta $(DIST_DIR).tgz
+
+
+binary-dist:
+ rm -rf $(BIN_DIST_DIR)
+ mkdir $(BIN_DIST_DIR)
+ mkdir $(BIN_DIST_DIR)/lib
+ ./configure --host="$(host)" --build="$(build)"
+ $(MAKE) all
+ $(INSTALL) ../bin/$(GF_EXE) tools/$(GF_DOC_EXE) $(BIN_DIST_DIR)
+ $(INSTALL) -m 0644 JavaGUI/gf-java.jar $(BIN_DIST_DIR)
+ $(INSTALL) -m 0644 $(GFEDITOR)/gfeditor.jar $(BIN_DIST_DIR)
+ $(INSTALL) configure config.guess config.sub install-sh $(BIN_DIST_DIR)
+ $(INSTALL) -m 0644 config.mk.in jgf.in gfeditor.in $(BIN_DIST_DIR)
+ $(INSTALL) -m 0644 ../README ../LICENSE $(BIN_DIST_DIR)
+ $(INSTALL) -m 0644 INSTALL.binary $(BIN_DIST_DIR)/INSTALL
+ $(INSTALL) -m 0644 Makefile.binary $(BIN_DIST_DIR)/Makefile
+ $(MAKE) lib
+ $(TAR) -C $(BIN_DIST_DIR)/lib -zxf ../lib/compiled.tgz
+ $(TAR) -zcf GF-$(PACKAGE_VERSION)-$(host).tgz $(BIN_DIST_DIR)
+ rm -rf $(BIN_DIST_DIR)
+
+grammar-dist:
+ -rm -rf $(GRAMMAR_DIST_DIR)
+ mkdir $(GRAMMAR_DIST_DIR)
+ cp -r ../_darcs/current/{lib,examples} $(GRAMMAR_DIST_DIR)
+ $(MAKE) GF_LIB_PATH=.. -C $(GRAMMAR_DIST_DIR)/lib/resource-1.0 show-path prelude present alltenses mathematical api multimodal langs
+ $(TAR) -zcf $(GRAMMAR_DIST_DIR).tgz $(GRAMMAR_DIST_DIR)
+ rm -rf $(GRAMMAR_DIST_DIR)
+
+gf.wxs: config.status gf.wxs.in
+ ./config.status --file=$@
+
+windows-msi: gf.wxs
+ candle -nologo gf.wxs
+ light -nologo -o $(MSI_FILE) gf.wixobj
+
+#
+# Installation
+#
+
+install: install-gf install-gfdoc install-lib install-editor
+
+install-gf:
+ $(INSTALL) -d $(bindir)
+ $(INSTALL) ../bin/$(GF_EXE) $(bindir)
+
+install-gf3:
+ $(INSTALL) -d $(bindir)
+ $(INSTALL) ../bin/$(GF3_EXE) $(bindir)
+ $(INSTALL) ../bin/gfc $(bindir)
+
+install-gfdoc:
+ $(INSTALL) -d $(bindir)
+ $(INSTALL) tools/$(GF_DOC_EXE) $(bindir)
+
+install-lib:
+ $(INSTALL) -d $(GF_LIB_DIR)
+ $(TAR) -C $(GF_LIB_DIR) -zxf ../lib/compiled.tgz
+
+install-editor:
+ $(INSTALL) -d $(GF_DATA_DIR)
+ $(INSTALL) jgf $(bindir)
+ $(INSTALL) -m 0644 JavaGUI/gf-java.jar $(GF_DATA_DIR)
+ $(INSTALL) gfeditor $(bindir)
+ $(INSTALL) -m 0644 $(GFEDITOR)/gfeditor.jar $(GF_DATA_DIR)
+
+install-java:
+ -rm -f ../bin/JavaGUI
+ ln -s ../src/JavaGUI ../bin
+ @echo "PLEASE set GFHOME and GF_LIB_PATH in your environment"
+ -rm -f ../bin/$(GFEDITOR)
+ ln -s ../src/$(GFEDITOR) ../bin