Makefile.installer revision c5e74fe76415b43abbed77f869f7d8e24de817e8
#
# Makefile
# $Id$
# Author: Heng Jiang, C. Maeder Uni Bremen 2004-2008
# Year: 2008
#
# This Makefile will generate the installer for Hets with IzPack
#
all : download build
TMP_PATH = $(PWD)
IZPACK_PATH = $(TMP_PATH)/Izpack-Hets
IZPACK_COMPILE = $(IZPACK_PATH)/bin/compile
IZPACK_SAMPLE = $(IZPACK_PATH)/sample
IZPACK_PACK = $(IZPACK_SAMPLE)/pack
IZPACK_SPASS = $(IZPACK_SAMPLE)/SPASS
IZPACK_HETS = $(IZPACK_SAMPLE)/hets
HETS_VERSION = 0.93
SPASS_DIR_MAC = SPASS-3.0
SPASS_MAC_BINARY = /home/mac-bkb/bin/SPASS
SPASS_INTEL_MAC_BINARY = /home/mac-bkb/intel/bin/SPASS
ARCH_OSES = linux intel-mac pc-solaris mac solaris linux64
HETS_URL = \
http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets
RELEASED_HETS_SRC = \
$(HETS_URL)/src-distribution/versions/Hets-src-$(HETS_VERSION).tgz
HETS_LIB_URL = http://www.informatik.uni-bremen.de/cofi/Libraries/daily/lib.tgz
UNI_TRUNK = https://svn-agbkb.informatik.uni-bremen.de/uni/trunk
IZPACK_TRUNK = https://svn-agbkb.informatik.uni-bremen.de/izpack
OSBYUNAME = $(shell uname)
ifneq ($(findstring SunOS, $(OSBYUNAME)),)
TAR = gtar
else
TAR = tar
endif
SPASSURL_SOLARIS = \
http://spass.mpi-sb.mpg.de/download/binaries/spass22sparc59.tgz
SPASSURL_MAC = \
http://spass.mpi-sb.mpg.de/download/binaries/spass30powerpcmac.dmg
SPASSURL_LINUX = \
http://spass.mpi-sb.mpg.de/download/binaries/spass30pclinux.tgz
SPASSURL_INTELMAC = \
http://spass.mpi-sb.mpg.de/download/binaries/spass30x86macosx.dmg
SPASS_SRC = http://spass.mpi-sb.mpg.de/download/sources/spass30.tgz
download : izpack-checkout hets-download release-hets-download spass-download
hets-lib-checkout :
@echo get Hets-lib
mkdir -p $(IZPACK_SAMPLE)/Hets-lib
wget --output-document=$(IZPACK_SAMPLE)/Hets-lib/Hets-lib.tgz \
$(HETS_LIB_URL)
hets-download : hets-lib-checkout
@cd $(IZPACK_SAMPLE)/src ; \
wget --output-document=Hets.tgz $(RELEASED_HETS_SRC) ; \
$(TAR) xvfz Hets.tgz ; \
cd Hets ; \
cp LICENSE.txt $(IZPACK_PACK)/ ; \
cp LIZENZ.txt $(IZPACK_PACK)/ ; \
cp README.installer $(IZPACK_PACK)/README ; \
mkdir -p $(IZPACK_HETS)/doc ; \
mkdir -p $(IZPACK_HETS)/java ; \
cp utils/el/*.el $(IZPACK_SAMPLE)/hets ; \
cp hets.in $(IZPACK_HETS)/hets ; \
cp utils/getDailyHets.sh $(IZPACK_SAMPLE)/getDailyHets.sh ; \
cp OWL/owl_parser.installer $(IZPACK_HETS)/owl_parser ; \
cp OWL/OWL2ATerm.jar $(IZPACK_HETS)/java ; \
cp CASL/Termination/AProVE.jar \
$(IZPACK_HETS)/java ; \
cp utils/hetcasl.sty docs/UserGuide.pdf $(IZPACK_HETS)/doc/ ; \
cd .. ; \
$(RM) -r Hets
release-hets-download :
for i in $(ARCH_OSES); do \
mkdir -p $(IZPACK_HETS)/$$i ; \
wget --output-document=$(IZPACK_HETS)/$$i/hets-$(HETS_VERSION).bz2 \
$(HETS_URL)/$$i/versions/hets-$(HETS_VERSION).bz2; done
tools-checkout :
@echo update uni
cd $(IZPACK_SAMPLE)/src ; \
svn checkout $(UNI_TRUNK) uni ; \
$(TAR) cvfz uni.tgz --exclude=.svn --exclude=.cvsignore uni ;\
echo checkout programatica ; \
cvs -d :pserver:anoncvs@cvs.haskell.org:/cvs co \
programatica/tools/base programatica/tools/property ;\
$(TAR) cvfz programatica.tgz --exclude=CVS --exclude=.cvsignore \
programatica
izpack-checkout :
@echo update izpack_het
svn checkout $(IZPACK_TRUNK) $(IZPACK_PATH)
spass-download :
wget --output-document=$(IZPACK_SPASS)/spass-src.tgz $(SPASS_SRC)
for i in $(ARCH_OSES) ; do \
spassdir=$(IZPACK_SPASS)/$$i ; \
mkdir -p $$spassdir ; \
cp -f $(IZPACK_SPASS)/spass-src.tgz $$spassdir/ ; \
done
$(RM) $(IZPACK_SPASS)/spass-src.tgz
wget --output-document=$(IZPACK_SPASS)/linux/spass.tgz \
$(SPASSURL_LINUX)
wget --output-document=$(IZPACK_SPASS)/linux64/spass.tgz \
$(SPASSURL_LINUX)
wget --output-document=$(IZPACK_SPASS)/solaris/spass.tgz \
$(SPASSURL_SOLARIS)
wget --output-document=$(IZPACK_SPASS)/mac/spass.dmp \
$(SPASSURL_MAC)
wget --output-document=$(IZPACK_SPASS)/intel-mac/spass.dmg \
$(SPASSURL_INTELMAC)
for i in linux solaris linux64; do \
cd $(IZPACK_SPASS)/$$i/ ; $(TAR) xvfz spass.tgz ; \
$(RM) spass.tgz ; mv SPASS*/SPASS . ; $(RM) -r SPASS*/* ; \
mv SPASS SPASS*/ ; chmod a+x SPASS*/SPASS ; \
done
mkdir -p $(IZPACK_SPASS)/mac/$(SPASS_DIR_MAC)
cp $(SPASS_MAC_BINARY) $(IZPACK_SPASS)/mac/$(SPASS_DIR_MAC)/
mkdir -p $(IZPACK_SPASS)/intel-mac/$(SPASS_DIR_MAC)
cp $(SPASS_INTEL_MAC_BINARY) \
$(IZPACK_SPASS)/intel-mac/$(SPASS_DIR_MAC)/
XMLFILE = $(IZPACK_PACK)/install
build-prepare :
perl -ple "s/\@HETSVERSION/$(HETS_VERSION)/g" \
$(XMLFILE)-all.xml.in > $(XMLFILE)-all.xml
perl -ple "s/\@HETSOS/ix86\/Linux/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-linux.xml.in
perl -ple "s/\@HETSOS/ix86_64\/Linux/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-linux64.xml.in
perl -ple "s/\@HETSOS/sparc\/SunOS/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-solaris.xml.in
perl -ple "s/\@HETSOS/ix86\/SunOS/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-pc-solaris.xml.in
perl -ple "s/\@HETSOS/ppc\/macos/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-mac.xml.in
perl -ple "s/\@HETSOS/ix86\/macos/g" $(XMLFILE)-all.xml \
> $(XMLFILE)-intel-mac.xml.in
for i in $(ARCH_OSES); do \
perl -ple "s/\@ARCHOS/$$i/g" $(XMLFILE)-$$i.xml.in \
> $(XMLFILE)-$$i.xml ; \
done
build : build-prepare
@chmod +x $(IZPACK_PATH)/bin/compile
for i in $(ARCH_OSES); do \
$(IZPACK_COMPILE) $(IZPACK_PACK)/install-$$i.xml \
-b $(IZPACK_SAMPLE)/ \
-o hets-$(HETS_VERSION)-installer-$$i.jar -k standard ; \
done
clean :
@$(RM) -r $(IZPACK_PATH)
.PHONY : all download build build-prepare hets-lib-checkout hets-download \
release-hets-download spass-download izpack-checkout \
clean tools-checkout