source: release-kits/lirk2/ant-scripts/wrap.xml@ 16233

Last change on this file since 16233 was 16233, checked in by oranfry, 16 years ago

don't bundle the search4j executable, instead include libsearch4j in the wrapper executable

File size: 5.7 KB
Line 
1<?xml version="1.0" encoding="utf-8" ?>
2<project name="lirk2-wrap" default="wrap">
3
4 <target name="wrap">
5 <addressedcall target="setup-for-wrapping"/>
6 <addressedcall target="compile-wrapper"/>
7 </target>
8
9
10 <target name="setup-for-wrapping">
11 <if><bool><istrue value="${execute}"/></bool>
12
13 <!-- create and setup the build directory -->
14 <mkdir dir="${basedir}/wrapped-installer/build"/>
15 <copy todir="${basedir}/wrapped-installer/build" file="${lirk2.home}/linux/wrapper.cpp"/>
16 <copy todir="${basedir}/wrapped-installer/build" file="${lirk2.home}/packages/search4j/libsearch4j.cpp"/>
17 <copy todir="${basedir}/wrapped-installer/build" file="${lirk2.home}/packages/search4j/libsearch4j.h"/>
18
19 <!-- copy bundled files -->
20 <copy todir="${basedir}/wrapped-installer/build" file="${lirk2.home}/linux/${linux-java.installer}"/>
21 <copy tofile="${basedir}/wrapped-installer/build/greenstone2.jar" file="${basedir}/installer/greenstone-${version}-linux.jar"/>
22 <copy tofile="${basedir}/wrapped-installer/build/greenstone2-with-java.jar" file="${basedir}/installer/greenstone-${version}-linux-with-java.jar"/>
23
24 <!-- substitute in real values -->
25 <rsr file="${basedir}/wrapped-installer/build/wrapper.cpp" pattern="@java.installer@" replacement="${linux-java.installer}"/>
26 <rsr file="${basedir}/wrapped-installer/build/wrapper.cpp" pattern="@installer.name@" replacement="greenstone2"/>
27 <rsr file="${basedir}/wrapped-installer/build/wrapper.cpp" pattern="@java.extracted@" replacement="${linux-java.extracted}"/>
28 <rsr file="${basedir}/wrapped-installer/build/wrapper.cpp" pattern="@java.min.version@" replacement="${java.min.version}"/>
29
30 </if>
31 </target>
32
33 <target name="compile-wrapper">
34 <if><bool><istrue value="${execute}"/></bool>
35
36 <echo level="info">create an object file (extension .o) for each file to bundle</echo>
37 <exec executable="/usr/bin/objcopy" dir="${basedir}/wrapped-installer/build">
38 <arg line="-I binary -O elf32-i386 -B i386 --redefine-sym _binary_greenstone2_jar_start=greenstone2jar --readonly-text greenstone2.jar greenstone2.jar.o"/>
39 </exec>
40 <exec executable="/usr/bin/objcopy" dir="${basedir}/wrapped-installer/build">
41 <arg line="-I binary -O elf32-i386 -B i386 --redefine-sym _binary_greenstone2_with_java_jar_start=greenstone2jar --readonly-text greenstone2-with-java.jar greenstone2-with-java.jar.o"/>
42 </exec>
43 <exec executable="/usr/bin/objcopy" dir="${basedir}/wrapped-installer/build">
44 <arg line="-I binary -O elf32-i386 -B i386 --redefine-sym _binary_${linux-java.installer}_start=java --readonly-text ${linux-java.installer} java.o"/>
45 </exec>
46
47 <!-- get size of greenstone.jar -->
48 <exec executable="ls" dir="${basedir}/wrapped-installer/build" outputproperty="greenstone2.jar.ls"><arg line="-l greenstone2.jar"/></exec>
49 <exec executable="sed" inputstring="${greenstone2.jar.ls}" outputproperty="greenstone2.jar.size"><arg line="-e 's/^[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *\([0-9]*\).*$/\1/g'"/></exec>
50
51 <!-- get size of greenstone-with-java.jar -->
52 <exec executable="ls" dir="${basedir}/wrapped-installer/build" outputproperty="greenstone2-with-java.jar.ls"><arg line="-l greenstone2-with-java.jar"/></exec>
53 <exec executable="sed" inputstring="${greenstone2-with-java.jar.ls}" outputproperty="greenstone2-with-java.jar.size"><arg line="-e 's/^[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *\([0-9]*\).*$/\1/g'"/></exec>
54
55 <!-- get size of java -->
56 <exec executable="ls" dir="${basedir}/wrapped-installer/build" outputproperty="java.ls"><arg line="-l ${linux-java.installer}"/></exec>
57 <exec executable="sed" inputstring="${java.ls}" outputproperty="java.size"><arg line="-e 's/^[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *[^\ ]*\ *\([0-9]*\).*$/\1/g'"/></exec>
58
59 <echo level="info">creating the header file for no java version</echo>
60 <delete file="wrapper.h"/>
61 <exec executable="echo" output="${basedir}/wrapped-installer/build/wrapper.h"><arg line="extern const char greenstone2jar[${greenstone2.jar.size}];"/></exec>
62
63 <echo level="info">compile the wrapper program</echo>
64 <exec executable="g++" dir="${basedir}/wrapped-installer/build">
65 <arg line="-Wall -static -static-libgcc -c -o wrapper.o wrapper.cpp"/>
66 </exec>
67
68 <echo level="info">compile libsearch4j</echo>
69 <exec executable="g++" dir="${basedir}/wrapped-installer/build">
70 <arg line="-Wall -static -static-libgcc -c -o libsearch4j.o libsearch4j.cpp"/>
71 </exec>
72
73 <echo level="info">link, bundling the files to be bundled</echo>
74 <exec executable="g++" dir="${basedir}/wrapped-installer/build">
75 <arg line="-static -static-libgcc -o ../greenstone-${version}-linux.bin wrapper.o libsearch4j.o greenstone2.jar.o"/>
76 </exec>
77
78 <echo level="info">creating the header file for bundled java version</echo>
79 <delete file="wrapper.h"/>
80 <exec executable="echo" output="${basedir}/wrapped-installer/build/wrapper.h"><arg line="extern const char greenstone2jar[${greenstone2-with-java.jar.size}];"/></exec>
81 <exec executable="echo" output="${basedir}/wrapped-installer/build/wrapper.h" append="true"><arg line="extern const char java[${java.size}];"/></exec>
82 <exec executable="echo" output="${basedir}/wrapped-installer/build/wrapper.h" append="true"><arg line="#define java_is_bundled yes"/></exec>
83
84 <echo level="info">recompile the wrapper program</echo>
85 <exec executable="g++" dir="${basedir}/wrapped-installer/build">
86 <arg line="-Wall -static -static-libgcc -c -o wrapper.o wrapper.cpp"/>
87 </exec>
88
89 <echo level="info">relink, bundling the files to be bundled</echo>
90 <exec executable="g++" dir="${basedir}/wrapped-installer/build">
91 <arg line="-static -static-libgcc -o ../greenstone-${version}-linux-with-java.bin wrapper.o libsearch4j.o greenstone2-with-java.jar.o java.o"/>
92 </exec>
93
94 </if>
95 </target>
96
97</project>
Note: See TracBrowser for help on using the repository browser.