systemlib := /usr/lib java := $(systemlib)/jvm/default-java systembin := /usr/bin gssrv := /srv/gsdl tomcatlib := /usr/share/java/tomcat7 tomcatconf := /etc/tomcat7/Catalina/localhost gstools := /opt/greenstone all: cleanpkg main tools demo svn: @echo "Getting latest source" svn co http://svn.greenstone.org/main/trunk/greenstone3 svn src: svn $(eval svnver := $(shell cd svn && svnversion -c | grep -o '[[:digit:]:]*')) $(eval srcver := $(shell if test -d src; then cd src && svnversion -c | grep -o '[[:digit:]:]*'; else echo "nope"; fi)) if test $(svnver) != $(srcver); then \ echo "Making copy of source" ; \ rm -rf src ; \ cp -rT svn src ; \ fi cleanpkg: @echo Cleaning pkg directory rm -rf pkg clean: cleanpkg @echo "Cleaning src directory" rm -rf src cleanall: clean @echo "Cleaning svn directory" rm -rf svn prepare: src cp -L *.properties *.patch src/ cd src ; \ export JAVA_HOME=$(java) ; \ yes | ant prepare patch -d src/ -p0 -N -i gs2build.patch || : cd src/gs2build/build-src ; \ autoconf rm -rf src/packages/*.zip rm -rf src/packages/axis/docs rm -rf src/gs2build/build-src/packages build: prepare cd src ; \ export JAVA_HOME=$(java) ; \ ant install mv src/lib/jni/*.jar src/web/WEB-INF/lib/ # patch for gs2build tempdir patch -d src/ -p0 -N -i perl-util.patch || : # delete windows/mac stuff find src/ -type d \( -iname "win32" -o -iname "windows" -o -iname "winutil" -o -iname "darwin" \) -exec rm -rf {} \; 2> /dev/null || : find src/ \( -iname "*.dll" -o -iname "*.exe" \) -exec rm -rf {} \; || : main: build $(eval pkgdir := pkg/main) install -d $(pkgdir)/$(gssrv) $(pkgdir)/$(systemlib) $(pkgdir)/$(tomcatlib) install -dm775 $(pkgdir)/$(tomcatlib) install -Dm755 src/lib/jni/*.so $(pkgdir)/$(systemlib) rsync -av --exclude sites/localsite/collect/ --exclude .svn src/web/ $(pkgdir)/$(gssrv)/ install -Dm644 greenstone3.xml $(pkgdir)/$(tomcatconf)/greenstone3.xml mv $(pkgdir)/$(gssrv)/WEB-INF/lib/derby.jar $(pkgdir)/$(tomcatlib) tools: build $(eval pkgdir := pkg/tools) install -d $(pkgdir)/$(gstools) rsync -av --exclude build-src --exclude common-src --exclude collect/demo --exclude .svn src/gs2build $(pkgdir)/$(gstools)/ rsync -av --exclude build-src --exclude common-src --exclude collect/demo --exclude .svn src/bin $(pkgdir)/$(gstools)/ install -Dm755 greenstone $(pkgdir)/$(systembin)/greenstone demo: build $(eval pkgdir := pkg/demo) @echo "Building demo collections" $(shell find sites/localsite/collect/ -mindepth 1 -maxdepth 1 -not -name ".*" -execdir bash -c 'col="$(basename $1)"; import.pl -removeold -site localsite "$$col"; buildcol.pl -removeold -site localsite "$$col"; mv "$$col/building" "$$col/index"' -- {} \;) install -d $(pkgdir)/$(gssrv)/sites/localsite rsync -av --exclude .svn src/web/sites/localsite/collect $(pkgdir)/$(gssrv)/sites/localsite/ .PHONY: svn cleanpkg clean cleanall prepare build main tools demo