#!/bin/sh

# Create a public source code tree based on this cvs pull of OdbcDriver.

# This is ad-hoc and won't track a history of edits to Makefile (see 'sed'
# line deletion below); better to maintain a special Makefile version for
# the source tree going forward.

TODAY=`date '+%Y%m%d'`
DESTDIR=OdbcDriverSource.$TODAY
if [ -d $DESTDIR ]; then
    echo "$DESTDIR already exists."
    exit 0
fi

set -x
mkdir $DESTDIR
mkdir $DESTDIR/config
mkdir $DESTDIR/installer
set +x

# Copy C source code files; the changes are conditionalized
# under #ifdef MARKLOGIC.
SOURCEFILES=`find . -name "*.[ch]"`
for SF in $SOURCEFILES; do
    set -x
    cp $SF $DESTDIR
    set +x
done
set -x
cp ./pgxalib.cpp $DESTDIR
cp ./msdtc_enlist.cpp $DESTDIR

# Copy online doc files with modified attribution.
cp -r ./docs $DESTDIR

# Copy the modified legal notice.
cp ./readme.txt $DESTDIR

# Copy unmodified config files.
cp ./config/missing $DESTDIR/config
cp ./config/depcomp $DESTDIR/config
cp ./config/ltoptions.m4 $DESTDIR/config
cp ./config/general.m4 $DESTDIR/config
cp ./config/ltmain.sh $DESTDIR/config
cp ./config/config.guess $DESTDIR/config
cp ./config/install-sh $DESTDIR/config
cp ./config/lt~obsolete.m4 $DESTDIR/config
cp ./config/ltsugar.m4 $DESTDIR/config
cp ./config/libtool.m4 $DESTDIR/config
cp ./config/ltversion.m4 $DESTDIR/config
cp ./config/c-library.m4 $DESTDIR/config
cp ./config/config.sub $DESTDIR/config
cp ./configure.ac $DESTDIR
cp ./odbc-drop.sql $DESTDIR
cp ./LICENSE.txt $DESTDIR
cp ./psqlodbca.def $DESTDIR
cp ./pgxalib.def $DESTDIR
cp ./win32.mak $DESTDIR
cp ./aclocal.m4 $DESTDIR
cp ./psqlodbc.def $DESTDIR
cp ./config.h.in $DESTDIR
cp ./Makefile.in $DESTDIR
cp ./Makefile.am $DESTDIR
cp ./psqlodbc.dsp $DESTDIR
cp ./psqlodbc.sln $DESTDIR
cp ./psqlodbc.vcproj $DESTDIR
cp ./libtool.m4 $DESTDIR
cp ./pgenlista.def $DESTDIR
cp ./pgenlist.def $DESTDIR
cp ./odbc.sql $DESTDIR
cp ./win64.mak $DESTDIR

# Copy modified config files
sed 's%# 1. Programs%sed -e "s!SQL_DIR =\\(.*\\)!SQL_DIR = $PG_CONFIG!" < Makefile.ml.in > Makefile\n# 1. Programs%' < ./configure > $DESTDIR/configure
chmod a+x $DESTDIR/configure
sed -e '135,218 d' \
    -e '113,123 d' \
    -e '31,32 d' \
    -e '5,10 d' \
    -e 's% 3 4 5 6 7 8 9 10%%' \
    -e 's%../SqlClient%$(PG_CONFIG)%' \
    -e 's%SQL_INCLUDES =\(.*\)%SQL_INCLUDES = -I$(SQL_DIR)/include -I/usr/local/pgsql/include%' \
    -e 's%-L$(SQL_DIR)%-L$(SQL_DIR)/lib -L$(MARKLOGIC_DIR)/lib%' \
    -e 's%UNIXODBC_DIR =\(.*\)%UNIXODBC_DIR =\nifeq "$(shell uname -s)" "SunOS"\nMARKLOGIC_DIR = /opt/MARKlogic\nelse\nMARKLOGIC_DIR = /opt/MarkLogic\nendif%' \
    -e 's%clean-msi-32 %%' \
    -e 's%clean-msi %%' \
    < ./Makefile > $DESTDIR/Makefile.ml.in
cp $DESTDIR/Makefile.ml.in $DESTDIR/Makefile
sed -e '3,5 d' \
    -e 's%PG_INC=\(.*\)%SQL_INCLUDES=-I"C:/Program Files/PostgreSQL/9.1/include"%' \
    -e 's%PG_LIB=\(.*\)%ifneq "$(ARCH)" "i686"\nPG_LIB=C:/Program Files/MarkLogic\nelse\nPG_LIB=C:/Program Files/MarkLogic/i686\nendif%' \
    -e 's%SSL_INC=\(.*\)%SSL_INC=C:/openssl/include%' \
    -e 's%SSL_LIB_PATH=\(.*\)%SSL_LIB_PATH=C:/openssl/lib%' \
    -e 's%libmlq.lib%"$(PG_LIB)/libmlq.lib"%' \
    < ./Makefile.winnt > $DESTDIR/Makefile.winnt
cp ./Makefile.linux $DESTDIR
cp ./Makefile.macosx $DESTDIR
cp ./Makefile.solaris $DESTDIR
cp ./psqlodbc.reg $DESTDIR
cp ./psqlodbc.rc $DESTDIR
cp ./mlsqlodbc.def $DESTDIR
cp ./mlsqlodbc.rc $DESTDIR
cp -r ./.deps $DESTDIR
set -x

# Provide both the original PostgreSQL bitmap installation graphics and
# the MarkLogic replacements
cp ./installer/background.bmp $DESTDIR/installer
cp ./installer/background.postgresql.bmp $DESTDIR/installer
cp ./installer/banner.bmp $DESTDIR/installer
cp ./installer/banner.postgresql.bmp $DESTDIR/installer
# Copy the public-consumption WiX installer support files
cp ./installer/source-tree-mlsqlodbcm.wxs $DESTDIR/installer/mlsqlodbcm.wxs
cp ./installer/source-tree-mlsqlodbc.wxs $DESTDIR/installer/mlsqlodbc.wxs
cp ./installer/source-tree-mlsqlodbcm_32.wxs $DESTDIR/installer/mlsqlodbcm_32.wxs
cp ./installer/source-tree-mlsqlodbc_32.wxs $DESTDIR/installer/mlsqlodbc_32.wxs
# Copy other modified installer support files
cp ./installer/Make.bat $DESTDIR/installer
# Copy unmodified installer support files
cp ./installer/README.txt $DESTDIR/installer
cp ./installer/psqlodbc.wxs $DESTDIR/installer
cp ./installer/MakeX64.bat $DESTDIR/installer
cp ./installer/upgrade_x64.bat $DESTDIR/installer
cp ./installer/upgrade.bat $DESTDIR/installer
cp ./installer/psqlodbcm.wxs $DESTDIR/installer
cp ./installer/psqlodbc_cpu.wxs $DESTDIR/installer
cp ./installer/modify_msi.vbs $DESTDIR/installer
cp ./installer/psqlodbcm_cpu.wxs $DESTDIR/installer
cp ./installer/lgpl.rtf $DESTDIR/installer
set +x

ZIP=`which zip`
if [ -x "$ZIP" ]; then
    zip -r $DESTDIR.zip $DESTDIR
else
    jar cvMf $DESTDIR.zip $DESTDIR
fi

if [ -f "$DESTDIR.zip" ]; then
   echo "Successfully created $DESTDIR.zip"
   exit 0
else
   echo "Failed to create $DESTDIR.zip"
   exit 1
fi
