Correct handling of white-space only loose ref files
[jgit/chris.git] / make_jgit.sh
blobe3f7ffaad491ad82f1c300b348390a54a60c19b1
1 #!/bin/sh
3 O_CLI=jgit
4 O_JAR=jgit.jar
5 O_SRC=jgit_src.zip
6 O_DOC=jgit_docs.zip
8 PLUGINS="
9 org.spearce.jgit
10 org.spearce.jgit.pgm
12 JARS="
13 org.spearce.jgit/lib/jsch-0.1.37.jar
14 org.spearce.jgit.pgm/lib/args4j-2.0.9.jar
17 PSEP=":"
18 T=".temp$$.$O_CLI"
19 T_MF="$T.MF"
20 R=`pwd`
21 if [ "$OSTYPE" = "cygwin" ]
22 then
23 R=`cygpath -m $R`
24 PSEP=";"
26 if [ "$MSYSTEM" = "MINGW" -o "$MSYSTEM" = "MINGW32" ]
27 then
28 PSEP=";"
29 R=`pwd -W`
32 if [ -n "$JAVA_HOME" ]
33 then
34 PATH=${JAVA_HOME}/bin${PSEP}${PATH}
37 cleanup_bin() {
38 rm -f $T $O_CLI+ $O_JAR+ $O_SRC+ $T_MF
39 for p in $PLUGINS
41 rm -rf $p/bin2
42 done
43 rm -rf docs
46 die() {
47 cleanup_bin
48 rm -f $O_CLI $O_JAR $O_SRC
49 echo >&2 "$@"
50 exit 1
53 cleanup_bin
54 rm -f $O_CLI $O_JAR $O_SRC $O_DOC
56 VN=`git describe --abbrev=4 HEAD 2>/dev/null`
57 git update-index -q --refresh
58 if [ -n "`git diff-index --name-only HEAD --`" ]
59 then
60 VN="$VN-dirty"
62 VN=${VN:-untagged}`echo "$VN" | sed -e s/-/./g`
64 CLASSPATH=
65 for j in $JARS
67 if [ -z "$CLASSPATH" ]
68 then
69 CLASSPATH="$R/$j"
70 else
71 CLASSPATH="${CLASSPATH}${PSEP}$R/$j"
73 done
74 export CLASSPATH
76 for p in $PLUGINS
78 echo "Entering $p ..."
79 (cd $p/src &&
80 mkdir ../bin2 &&
81 find . -name \*.java -type f |
82 xargs javac \
83 -source 1.5 \
84 -target 1.5 \
85 -encoding UTF-8 \
86 -g \
87 -d ../bin2) || die "Building $p failed."
88 CLASSPATH="${CLASSPATH}${PSEP}$R/$p/bin2"
89 done
90 echo
92 echo "Version $VN" &&
93 echo Manifest-Version: 1.0 >$T_MF &&
94 echo Implementation-Title: jgit >>$T_MF &&
95 echo Implementation-Version: $VN >>$T_MF &&
97 java org.spearce.jgit.pgm.build.JarLinkUtil \
98 -include org.spearce.jgit/bin2 \
99 -file META-INF/MANIFEST.MF=$T_MF \
100 >$O_JAR+ &&
101 mv $O_JAR+ $O_JAR &&
102 echo "Created $O_JAR." &&
104 java org.spearce.jgit.pgm.build.JarLinkUtil \
105 -include org.spearce.jgit/src \
106 -file META-INF/MANIFEST.MF=$T_MF \
107 >$O_SRC+ &&
108 mv $O_SRC+ $O_SRC &&
109 echo "Created $O_SRC." &&
111 M_TB=META-INF/services/org.spearce.jgit.pgm.TextBuiltin &&
112 sed s/@@use_self@@/1/ jgit.sh >$O_CLI+ &&
113 java org.spearce.jgit.pgm.build.JarLinkUtil \
114 `for p in $JARS ; do printf %s " -include $p" ;done` \
115 `for p in $PLUGINS; do printf %s " -include $p/bin2";done` \
116 -file $M_TB=org.spearce.jgit.pgm/src/$M_TB \
117 -file META-INF/MANIFEST.MF=$T_MF \
118 >>$O_CLI+ &&
119 chmod 555 $O_CLI+ &&
120 mv $O_CLI+ $O_CLI &&
121 echo "Created $O_CLI." || die "Build failed."
123 echo "Building Javadocs ..."
124 for p in $PLUGINS; do
125 javadoc -quiet -sourcepath "$p/src/" -d "docs/$p/" \
126 `find "$p/src" -name "*.java"`
127 done
129 (cd docs && jar cf "../$O_DOC" .)
130 echo "Created $O_DOC."
132 cleanup_bin