90 lines
2.3 KiB
Bash
Executable file
90 lines
2.3 KiB
Bash
Executable file
#! /bin/sh
|
|
|
|
# Stop script on first error.
|
|
set -e
|
|
|
|
# Retrieve libnfc version from configure.ac
|
|
LIBNFC_VERSION=$(grep AC_INIT configure.ac | sed 's/^.*(\(.*\))/\1/g' | awk -F', ' '{ print $2 }')
|
|
|
|
# Easiest part: GNU/linux, BSD and other POSIX systems.
|
|
LIBNFC_AUTOTOOLS_ARCHIVE=libnfc-$LIBNFC_VERSION.tar.gz
|
|
|
|
echo "> Cleaning sources..."
|
|
# First, clean what we can
|
|
autoreconf -is && ./configure && make distclean
|
|
svn propget svn:ignore . | xargs rm -rf
|
|
echo "< Sources cleaned."
|
|
|
|
if [ ! -f $LIBNFC_AUTOTOOLS_ARCHIVE ]; then
|
|
echo "Autotooled archive generation..."
|
|
|
|
# Second, generate dist archive (and test it)
|
|
autoreconf -is && ./configure && make distcheck
|
|
|
|
# Finally, clean up
|
|
make distclean
|
|
echo "Autotooled archive generated."
|
|
else
|
|
echo "Autotooled archive (GNU/Linux, BSD, etc.) is already done: skipped."
|
|
fi
|
|
|
|
# Documentation part
|
|
LIBNFC_DOC_DIR=libnfc-doc-$LIBNFC_VERSION
|
|
LIBNFC_DOC_ARCHIVE=$LIBNFC_DOC_DIR.zip
|
|
|
|
if [ ! -f $LIBNFC_DOC_ARCHIVE ]; then
|
|
echo "Documentation archive generation..."
|
|
if [ -d $LIBNFC_DOC_DIR ]; then
|
|
rm -rf $LIBNFC_DOC_DIR
|
|
fi
|
|
|
|
# Build documentation
|
|
autoreconf -is && ./configure --enable-doc && make doc || false
|
|
|
|
# Create archive
|
|
cp -r doc/html $LIBNFC_DOC_DIR
|
|
zip -r $LIBNFC_DOC_ARCHIVE $LIBNFC_DOC_DIR
|
|
|
|
# Clean up
|
|
rm -rf $LIBNFC_DOC_DIR
|
|
make distclean
|
|
echo "Documentation archive generated."
|
|
else
|
|
echo "Documentation archive is already done: skipped."
|
|
fi
|
|
|
|
# Windows part
|
|
LIBNFC_WINDOWS_DIR=libnfc-$LIBNFC_VERSION-winsdk
|
|
LIBNFC_WINDOWS_ARCHIVE=$LIBNFC_WINDOWS_DIR.zip
|
|
|
|
if [ ! -f $LIBNFC_WINDOWS_ARCHIVE ]; then
|
|
echo "Windows archive generation..."
|
|
if [ -d $LIBNFC_WINDOWS_DIR ]; then
|
|
rm -rf $LIBNFC_WINDOWS_DIR
|
|
fi
|
|
|
|
mkdir -p $LIBNFC_WINDOWS_DIR
|
|
|
|
# Export sources
|
|
svn export libnfc $LIBNFC_WINDOWS_DIR/src
|
|
# Export windows files
|
|
svn export win32 $LIBNFC_WINDOWS_DIR/win32
|
|
|
|
# Copy important files
|
|
cp AUTHORS $LIBNFC_WINDOWS_DIR/AUTHORS.txt
|
|
cp LICENSE $LIBNFC_WINDOWS_DIR/LICENSE.txt
|
|
|
|
# Remove Autotools Makefile.am
|
|
find $LIBNFC_WINDOWS_DIR/ -name Makefile.am | xargs rm -f
|
|
|
|
# Remove CMakeLists.txt
|
|
find $LIBNFC_WINDOWS_DIR/ -name CMakeLists.txt | xargs rm -f
|
|
|
|
# Build archive
|
|
zip -r $LIBNFC_WINDOWS_ARCHIVE $LIBNFC_WINDOWS_DIR
|
|
rm -rf $LIBNFC_WINDOWS_DIR
|
|
echo "Windows archive generated."
|
|
else
|
|
echo "Windows archive is already done: skipped."
|
|
fi
|
|
|