You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.9 KiB
65 lines
1.9 KiB
--- |
|
name: "protobuf-win32" |
|
suites: |
|
- "precise" |
|
architectures: |
|
- "amd64" |
|
packages: |
|
- "mingw-w64" |
|
- "g++-mingw-w64" |
|
- "zip" |
|
- "faketime" |
|
reference_datetime: "2013-04-15 00:00:00" |
|
remotes: [] |
|
files: |
|
- "protobuf-2.5.0.tar.bz2" |
|
script: | |
|
# |
|
export TZ=UTC |
|
INDIR=$HOME/build |
|
TEMPDIR=$HOME/tmp |
|
OPTFLAGS="-O2" |
|
# Integrity Check |
|
echo "13bfc5ae543cf3aa180ac2485c0bc89495e3ae711fc6fab4f8ffe90dfb4bb677 protobuf-2.5.0.tar.bz2" | sha256sum -c |
|
|
|
for BITS in 32 64; do # for architectures |
|
# |
|
INSTALLPREFIX=$HOME/staging${BITS} |
|
BUILDDIR=$HOME/build${BITS} |
|
if [ "$BITS" == "32" ]; then |
|
HOST=i686-w64-mingw32 |
|
else |
|
HOST=x86_64-w64-mingw32 |
|
fi |
|
# |
|
mkdir -p $INSTALLPREFIX $BUILDDIR |
|
cd $BUILDDIR |
|
# |
|
tar xjf $INDIR/protobuf-2.5.0.tar.bz2 |
|
cd protobuf-2.5.0 |
|
# First: build a native (linux) protoc |
|
./configure --enable-shared=no --disable-dependency-tracking |
|
make |
|
mkdir -p $INSTALLPREFIX/host/bin |
|
cp src/protoc $INSTALLPREFIX/host/bin |
|
# Now recompile with the mingw cross-compiler: |
|
make distclean |
|
./configure --prefix=$INSTALLPREFIX --enable-shared=no --disable-dependency-tracking --with-protoc=$INSTALLPREFIX/host/bin/protoc --host=$HOST CXXFLAGS="-frandom-seed=11 ${OPTFLAGS}" |
|
export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 |
|
export FAKETIME=$REFERENCE_DATETIME |
|
make |
|
make install |
|
# post-process all generated libraries to be deterministic |
|
# extract them to a temporary directory then re-build them deterministically |
|
for LIB in $(find $INSTALLPREFIX -name \*.a); do |
|
rm -rf $TEMPDIR && mkdir $TEMPDIR && cd $TEMPDIR |
|
$HOST-ar xv $LIB | cut -b5- > /tmp/list.txt |
|
rm $LIB |
|
$HOST-ar crsD $LIB $(cat /tmp/list.txt) |
|
done |
|
# |
|
cd $INSTALLPREFIX |
|
find include lib host | sort | zip -X@ $OUTDIR/protobuf-win$BITS-2.5.0-gitian-r4.zip |
|
unset LD_PRELOAD |
|
unset FAKETIME |
|
done # for BITS in
|
|
|