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

Last change on this file since 19510 was 19510, checked in by oranfry, 15 years ago

main release kits now create their own cdrom installers and wrap them

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