1 | systemlib := /usr/lib
|
---|
2 | java := $(systemlib)/jvm/default-java
|
---|
3 | systembin := /usr/bin
|
---|
4 | gssrv := /srv/gsdl
|
---|
5 | tomcatlib := /usr/share/java/tomcat7
|
---|
6 | tomcatconf := /etc/tomcat7/Catalina/localhost
|
---|
7 | gstools := /opt/greenstone
|
---|
8 |
|
---|
9 | all: cleanpkg main tools demo
|
---|
10 |
|
---|
11 | svn:
|
---|
12 | @echo "Getting latest source"
|
---|
13 | svn co http://svn.greenstone.org/main/trunk/greenstone3 svn
|
---|
14 |
|
---|
15 | src: svn
|
---|
16 | $(eval svnver := $(shell cd svn && svnversion -c | grep -o '[[:digit:]:]*'))
|
---|
17 | $(eval srcver := $(shell if test -d src; then cd src && svnversion -c | grep -o '[[:digit:]:]*'; else echo "nope"; fi))
|
---|
18 | if test $(svnver) != $(srcver); then \
|
---|
19 | echo "Making copy of source" ; \
|
---|
20 | rm -rf src ; \
|
---|
21 | cp -rT svn src ; \
|
---|
22 | fi
|
---|
23 |
|
---|
24 | cleanpkg:
|
---|
25 | @echo Cleaning pkg directory
|
---|
26 | rm -rf pkg
|
---|
27 |
|
---|
28 | clean: cleanpkg
|
---|
29 | @echo "Cleaning src directory"
|
---|
30 | rm -rf src
|
---|
31 |
|
---|
32 | cleanall: clean
|
---|
33 | @echo "Cleaning svn directory"
|
---|
34 | rm -rf svn
|
---|
35 |
|
---|
36 | prepare: src
|
---|
37 | cp -L *.properties *.patch src/
|
---|
38 | cd src ; \
|
---|
39 | export JAVA_HOME=$(java) ; \
|
---|
40 | yes | ant prepare
|
---|
41 | patch -d src/ -p0 -N -i gs2build.patch || :
|
---|
42 | cd src/gs2build/build-src ; \
|
---|
43 | autoconf
|
---|
44 | rm -rf src/packages/*.zip
|
---|
45 | rm -rf src/packages/axis/docs
|
---|
46 | rm -rf src/gs2build/build-src/packages
|
---|
47 |
|
---|
48 | build: prepare
|
---|
49 | cd src ; \
|
---|
50 | export JAVA_HOME=$(java) ; \
|
---|
51 | ant install
|
---|
52 | mv src/lib/jni/*.jar src/web/WEB-INF/lib/
|
---|
53 | # patch for gs2build tempdir
|
---|
54 | patch -d src/ -p0 -N -i perl-util.patch || :
|
---|
55 | # delete windows/mac stuff
|
---|
56 | find src/ -type d \( -iname "win32" -o -iname "windows" -o -iname "winutil" -o -iname "darwin" \) -exec rm -rf {} \; 2> /dev/null || :
|
---|
57 | find src/ \( -iname "*.dll" -o -iname "*.exe" \) -exec rm -rf {} \; || :
|
---|
58 |
|
---|
59 | main: build
|
---|
60 | $(eval pkgdir := pkg/main)
|
---|
61 | install -d $(pkgdir)/$(gssrv) $(pkgdir)/$(systemlib) $(pkgdir)/$(tomcatlib)
|
---|
62 | install -dm775 $(pkgdir)/$(tomcatlib)
|
---|
63 | install -Dm755 src/lib/jni/*.so $(pkgdir)/$(systemlib)
|
---|
64 | rsync -av --exclude sites/localsite/collect/ --exclude .svn src/web/ $(pkgdir)/$(gssrv)/
|
---|
65 | install -Dm644 greenstone3.xml $(pkgdir)/$(tomcatconf)/greenstone3.xml
|
---|
66 | mv $(pkgdir)/$(gssrv)/WEB-INF/lib/derby.jar $(pkgdir)/$(tomcatlib)
|
---|
67 |
|
---|
68 | tools: build
|
---|
69 | $(eval pkgdir := pkg/tools)
|
---|
70 | install -d $(pkgdir)/$(gstools)
|
---|
71 | rsync -av --exclude build-src --exclude common-src --exclude collect/demo --exclude .svn src/gs2build $(pkgdir)/$(gstools)/
|
---|
72 | rsync -av --exclude build-src --exclude common-src --exclude collect/demo --exclude .svn src/bin $(pkgdir)/$(gstools)/
|
---|
73 | install -Dm755 greenstone $(pkgdir)/$(systembin)/greenstone
|
---|
74 |
|
---|
75 | demo: build
|
---|
76 | $(eval pkgdir := pkg/demo)
|
---|
77 | @echo "Building demo collections"
|
---|
78 | $(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"' -- {} \;)
|
---|
79 | install -d $(pkgdir)/$(gssrv)/sites/localsite
|
---|
80 | rsync -av --exclude .svn src/web/sites/localsite/collect $(pkgdir)/$(gssrv)/sites/localsite/
|
---|
81 |
|
---|
82 | .PHONY: svn cleanpkg clean cleanall prepare build main tools demo
|
---|