Makefile revision f5c0884429b01e74c6e658ded921fb2e16dfb478
# Makefile
# $Id$
# Author: (c) Klaus Luettich, Christian Maeder, Uni Bremen 2002-2009
# This Makefile will compile the hets system and provides also
# targets for test programs during implementation phases.
# !!! Note: This makefile is written for GNU make !!!
# (gmake on solaris)
# the 'replacing spaces' example was taken from the (GNU) Make info manual
empty =
-i Data.Typeable -i ATerm.Lib
# list glade files
GTK_GLADE_FILES = $(wildcard GUI/Glade/*.glade)
# the list of logics that need ShATermConvertible instances
### list of directories to run checks in
## rule for appendHaskellPreludeString
$(RM) $@
$(APPENDPRELUDESTRING) < $< > $@
chmod 444 $@
#Ti_Haskell_files = TiTypes TiKinds TiDecorate TiInstanceDB
#Ti_Prop_files = property/TI/TiPropDecorate property/syntax/PropSyntaxRec
Haskell_files = $(addsuffix .hs, \
## rule for ATC generation
hs_der_files += $(hs_clean_files)
else
# unset this variable from var.mk because the programatica sources
# are needed to created our sources!
# end of programatica stuff
GHCVERSION = $(shell ghc --numeric-version)
# uncomment HC_PROF for profiling (and comment out packages in var.mk)
# call resulting binary with a final +RTS -p to get a file <binary>.prof
# HC_PROF = -prof -auto-all -osuf p_o +RTS -K100m -RTS
# -ddump-minimal-imports
# uncomment the above line to generate .imports files for displayDependencyGraph
# files generated by DriFT
# files to extract data types from to generate ShATermConvertible instances
# files generated by genRules as input for DriFT
# the rules to create ATC .der.hs file for DriFT
$(GENRULECALL) -o $@ $<
$(GENRULECALL) -i ATC.Id -o $@ $<
$(GENRULECALL) -o $@ $<
$(GENRULECALL) -o $@ $<
$(GENRULECALL) -o $@ $<
$(GENRULECALL) -x Common.Consistency.ConservativityChecker -o $@ $<
$(GENRULECALL) -i Common.ATerm.ConvInstances -o $@ $<
$(GENRULECALL) -o $@ $<
$(GENRULECALL2) -o $@ $<
$(GENRULECALL2) -i ATC.DgUtils -o $@ $<
# ATC files for every logic
# ATC DrIFT-rule generation for logics
$(GENRULECALL) -o $@ $(Isabelle_files)
# all ATC .der.hs files for all logics
# a rule to create all .der.hs files
# the final ATC target files created by DriFT
# all sources that need to be created before ghc can be called
####################################################################
### targets
# dummy target to force ghc invocation
cgi:
# Documentation via haddock
-i http://hackage.haskell.org/packages/archive/$(basename $(notdir $(file)))/latest/doc/html,$(file))
-t 'Hets - the Heterogeneous Tool Set' \
$(DRIFT): $(DRIFT_deps)
(cd utils/GenerateRules; \
GenerateRules.hs -o ../genRules)
# release management
./clean.sh; \
# Common/LaTeX_maps.hs generation
@echo -n "Generating pretty/LaTeX_maps.hs ... "
@(cd pretty >/dev/null; ../utils/genItCorrections \
@echo "ready"
@echo "please copy the file manually to Common"
### clean up
### removes all *.o, *.hi and *.p_o files in all subdirectories
### remove binaries
$(RM) $(TESTTARGETS)
### additionally removes the library files
### additionally removes generated files not in the CVS tree
$(RM) $(derived_sources)
### interactive
ghci: $(derived_sources)
### build only, don't link
### Kif parser
### Annos parser
### CASL parser
### HasCASL parser
### Haskell analysis
### Haskell to Isabelle-HOLCF translation
### HasCASL to Haskell translation
### test program to check the known provers
### run tests in other directories
check: $(TESTTARGETS)
## Preparing the version of Hets
$(RM) $@
< Driver/Version.in > $@
chmod 444 $@
## two hardcoded dependencies for a correct generation of Version.hs
## two dependencies to avoid circular prerequisites
## suffix rules
.SUFFIXES:
## rule for GHC
## rule for DrIFT
$(RM) $@
chmod 444 $@
## compiling rules for object and interface files
## compiling rules for dependencies
%.d : %.hs
%.d : %.lhs
## Rule to generate hs files from glade files. Needed for GTK
utils/appendHaskellPreludeString $< > $@
# directory for installers
INSTALLER_DIR = ../installers
HETS_VERSION := `cat version_nr`
# or `date +%F`
# prepare installer creation
mkdir -p $(INSTALLER_DIR)
> $(INSTALLER_DIR)/Makefile
@echo Please do
@echo " -> make"
# check out java parts for OWL
# download dependencies for RDF Jena-api
echo "File arq-2.8.7.jar already exists"; \
else \
curl -o RDF/java/lib/arq-2.8.7.jar http://repo1.maven.org/maven2/com/hp/hpl/jena/arq/2.8.7/arq-2.8.7.jar; \
fi
echo "File icu4j-3.4.4.jar already exists"; \
else \
curl -o RDF/java/lib/icu4j-3.4.4.jar http://repo1.maven.org/maven2/com/ibm/icu/icu4j/3.4.4/icu4j-3.4.4.jar; \
fi
echo "File iri-0.8.jar already exists"; \
else \
curl -o RDF/java/lib/iri-0.8.jar http://repo1.maven.org/maven2/com/hp/hpl/jena/iri/0.8/iri-0.8.jar; \
fi
echo "File jena-2.6.4.jar already exists"; \
else \
curl -o RDF/java/lib/jena-2.6.4.jar http://repo1.maven.org/maven2/com/hp/hpl/jena/jena/2.6.4/jena-2.6.4.jar; \
fi
echo "File junit-4.5.jar already exists"; \
else \
fi
echo "File log4j-1.2.13.jar already exists"; \
else \
curl -o RDF/java/lib/log4j-1.2.13.jar http://repo1.maven.org/maven2/log4j/log4j/1.2.13/log4j-1.2.13.jar; \
fi
echo "File lucene-core-2.3.1.jar already exists"; \
else \
curl -o RDF/java/lib/lucene-core-2.3.1.jar http://repo1.maven.org/maven2/org/apache/lucene/lucene-core/2.3.1/lucene-core-2.3.1.jar; \
fi
echo "File slf4j-api-1.5.8.jar already exists"; \
else \
curl -o RDF/java/lib/slf4j-api-1.5.8.jar http://repo2.maven.org/maven2/org/slf4j/slf4j-api/1.5.8/slf4j-api-1.5.8.jar; \
fi
echo "File slf4j-log4j12-1.5.8.jar already exists"; \
else \
curl -o RDF/java/lib/slf4j-log4j12-1.5.8.jar http://repo2.maven.org/maven2/org/slf4j/slf4j-log4j12/1.5.8/slf4j-log4j12-1.5.8.jar; \
fi
echo "File stax-api-1.0.1.jar already exists"; \
else \
fi
echo "File wstx-asl-3.2.9.jar already exists"; \
else \
curl -o RDF/java/lib/wstx-asl-3.2.9.jar http://repo1.maven.org/maven2/org/codehaus/woodstox/wstx-asl/3.2.9/wstx-asl-3.2.9.jar; \
fi
echo "File xercesImpl-2.7.1.jar already exists"; \
else \
curl -o RDF/java/lib/xercesImpl-2.7.1.jar http://mirrors.ibiblio.org/pub/mirrors/maven2/xerces/xercesImpl/2.7.1/xercesImpl-2.7.1.jar; \
fi
# download rdf4h, unpack and install