|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- #!/bin/sh
- # Copyright (C) 2009, Christian Halstrick <christian.halstrick@sap.com>
- # Copyright (C) 2008-2009, Google Inc.
- # Copyright (C) 2009, Johannes Schindelin <Johannes.Schindelin@gmx.de>
- # Copyright (C) 2008, Mike Ralphson <mike@abacus.co.uk>
- # Copyright (C) 2009, Mykola Nikishov <mn@mn.com.ua>
- # Copyright (C) 2009, Nicholas Campbell <nicholas.j.campbell@gmail.com>
- # Copyright (C) 2009, Robin Rosenberg <robin.rosenberg@gmail.com>
- # Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
- # and other copyright owners as documented in the project's IP log.
- #
- # This program and the accompanying materials are made available
- # under the terms of the Eclipse Distribution License v1.0 which
- # accompanies this distribution, is reproduced below, and is
- # available at http://www.eclipse.org/org/documents/edl-v10.php
- #
- # All rights reserved.
- #
- # Redistribution and use in source and binary forms, with or
- # without modification, are permitted provided that the following
- # conditions are met:
- #
- # - Redistributions of source code must retain the above copyright
- # notice, this list of conditions and the following disclaimer.
- #
- # - Redistributions in binary form must reproduce the above
- # copyright notice, this list of conditions and the following
- # disclaimer in the documentation and/or other materials provided
- # with the distribution.
- #
- # - Neither the name of the Eclipse Foundation, Inc. nor the
- # names of its contributors may be used to endorse or promote
- # products derived from this software without specific prior
- # written permission.
- #
- # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- # STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
- # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
- O_CLI=jgit
- O_JAR=jgit.jar
- O_SRC=jgit_src.zip
- O_DOC=jgit_docs.zip
-
- PLUGINS="
- org.eclipse.jgit
- org.eclipse.jgit.ui
- org.eclipse.jgit.pgm
- "
- JARS="
- org.eclipse.jgit/lib/jsch-0.1.37.jar
- org.eclipse.jgit.pgm/lib/args4j-2.0.9.jar
- "
-
- PSEP=":"
- T=".temp$$.$O_CLI"
- T_MF="$T.MF"
- R=`pwd`
- if [ "$OSTYPE" = "cygwin" ]
- then
- R=`cygpath -m $R`
- PSEP=";"
- fi
- if [ "$MSYSTEM" = "MINGW" -o "$MSYSTEM" = "MINGW32" ]
- then
- PSEP=";"
- R=`pwd -W`
- fi
-
- if [ -n "$JAVA_HOME" ]
- then
- PATH=${JAVA_HOME}/bin${PSEP}${PATH}
- fi
-
- cleanup_bin() {
- rm -f $T $O_CLI+ $O_JAR+ $O_SRC+ $T_MF
- for p in $PLUGINS
- do
- rm -rf $p/bin2
- done
- rm -rf docs
- }
-
- die() {
- cleanup_bin
- rm -f $O_CLI $O_JAR $O_SRC
- echo >&2 "$@"
- exit 1
- }
-
- cleanup_bin
- rm -f $O_CLI $O_JAR $O_SRC $O_DOC
-
- VN=`git describe --abbrev=4 HEAD 2>/dev/null`
- git update-index -q --refresh
- if [ -n "`git diff-index --name-only HEAD --`" ]
- then
- VN="$VN-dirty"
- fi
- VN=${VN:-untagged}`echo "$VN" | sed -e s/-/./g`
-
- CLASSPATH=
- for j in $JARS
- do
- if [ -z "$CLASSPATH" ]
- then
- CLASSPATH="$R/$j"
- else
- CLASSPATH="${CLASSPATH}${PSEP}$R/$j"
- fi
- done
- export CLASSPATH
-
- for p in $PLUGINS
- do
- echo "Entering $p ..."
- (cd $p/src &&
- mkdir ../bin2 &&
- find . -name \*.java -type f |
- xargs javac \
- -source 1.5 \
- -target 1.5 \
- -encoding UTF-8 \
- -g \
- -d ../bin2) || die "Building $p failed."
- CLASSPATH="${CLASSPATH}${PSEP}$R/$p/bin2"
- done
- echo
-
- echo "Version $VN" &&
- echo Manifest-Version: 1.0 >$T_MF &&
- echo Implementation-Title: jgit >>$T_MF &&
- echo Implementation-Version: $VN >>$T_MF &&
-
- java org.eclipse.jgit.pgm.build.JarLinkUtil \
- -include org.eclipse.jgit/bin2 \
- -file META-INF/MANIFEST.MF=$T_MF \
- >$O_JAR+ &&
- mv $O_JAR+ $O_JAR &&
- echo "Created $O_JAR." &&
-
- java org.eclipse.jgit.pgm.build.JarLinkUtil \
- -include org.eclipse.jgit/src \
- -file META-INF/MANIFEST.MF=$T_MF \
- >$O_SRC+ &&
- mv $O_SRC+ $O_SRC &&
- echo "Created $O_SRC." &&
-
- M_TB=META-INF/services/org.eclipse.jgit.pgm.TextBuiltin &&
- sed s/@@use_self@@/1/ jgit.sh >$O_CLI+ &&
- java org.eclipse.jgit.pgm.build.JarLinkUtil \
- `for p in $JARS ; do printf %s " -include $p" ;done` \
- `for p in $PLUGINS; do printf %s " -include $p/bin2";done` \
- -file $M_TB=org.eclipse.jgit.pgm/src/$M_TB \
- -file META-INF/MANIFEST.MF=$T_MF \
- >>$O_CLI+ &&
- chmod 555 $O_CLI+ &&
- mv $O_CLI+ $O_CLI &&
- echo "Created $O_CLI." || die "Build failed."
-
- echo "Building Javadocs ..."
- for p in $PLUGINS; do
- javadoc -quiet -sourcepath "$p/src/" -d "docs/$p/" \
- `find "$p/src" -name "*.java"`
- done
-
- (cd docs && jar cf "../$O_DOC" .)
- echo "Created $O_DOC."
-
- cleanup_bin
|