summaryrefslogtreecommitdiff
path: root/db-4.8.30/dist/s_winmsi
diff options
context:
space:
mode:
Diffstat (limited to 'db-4.8.30/dist/s_winmsi')
-rwxr-xr-xdb-4.8.30/dist/s_winmsi142
1 files changed, 142 insertions, 0 deletions
diff --git a/db-4.8.30/dist/s_winmsi b/db-4.8.30/dist/s_winmsi
new file mode 100755
index 0000000..4f3e9a0
--- /dev/null
+++ b/db-4.8.30/dist/s_winmsi
@@ -0,0 +1,142 @@
+#!/bin/bash -
+# $Id$
+#
+# Note: The s_winmsi script in Berkeley DB core closely parallels the
+# s_winmsi script in Berkeley DB/XML. If you change one,
+# consider whether your changes apply to the other.
+# As of this writing, the two s_winmsi scripts 'diff' very closely, and
+# identical portions have been factored into functions in s_winmsi.fcn.
+#
+# Usage: s_winmsi [ options ]
+#
+# See the Usage() function in s_winmsi.fcn for a full list of options.
+# By default, this script expects a db-X.Y.Z.zip file
+# to be in this directory, and uses it to build all binaries
+# needed for an Windows install, and finally builds the an
+# output db-X.Y.Z.msi file that can be installed on
+# Windows XP and 2000.
+#
+# The major other inputs to this script are these files:
+#
+# features.in list of choosable features (like Java,PHP,...)
+# files.in what files are in each feature and where they belong
+# links.in a list of URLs that end up as part of the Start Menu
+# environment.in a list of environment vars that must be set
+#
+# This script does a number of operations, using the directory
+# './winmsi/stage' as a staging area:
+#
+# extracts the contents of the input ZIP file and uses those
+# files (minus docs/...) to build a Sources directory for
+# the Sources features.
+#
+# builds Berkeley DB using Visual Studio tools using a .BAT
+# script derived from winbuild.in .
+#
+# builds Perl and other APIs .
+#
+# uses {features,files,links,environment}.in to build some include
+# files in WiX XML format. These files are named
+# *.wixinc (e.g. directory.wixinc)
+#
+# run m4 on dbcorewix.in to create dbcore.wxs . dbcorewix.in
+# uses m4 macros to allow reasonable refactoring of repeated
+# UI code. Also, m4 is used to include the files created in
+# the previous step.
+#
+# Use the WiX compiler/linker on the .wxs files to create the .msi file.
+#
+################################################################
+
+# Define all needed shell functions
+. ./winmsi/s_winmsi.fcn
+
+ERRORLOG="$0".log
+SetupErrorLog
+
+# Do this before parsing options, we need the version number
+. ./RELEASE
+dbver=db-$DB_VERSION
+
+# Set variables used by functions to customize this installer
+PRODUCT_NAME="Berkeley DB"
+PRODUCT_VERSION="$DB_VERSION"
+PRODUCT_STAGE=`pwd`/winmsi/stage
+PRODUCT_LICENSEDIR="${PRODUCT_STAGE}/$dbver"
+PRODUCT_SUB_BLDDIR="${PRODUCT_STAGE}/$dbver"
+PRODUCT_BLDDIR="${PRODUCT_STAGE}/$dbver"
+PRODUCT_SRCDIR="${PRODUCT_STAGE}/$dbver"
+PRODUCT_DBBUILDDIR="${PRODUCT_STAGE}/$dbver/build_unix"
+PRODUCT_SHARED_WINMSIDIR=`pwd`/winmsi
+PRODUCT_IMAGEDIR=$PRODUCT_SHARED_WINMSIDIR/images
+PRODUCT_ZIP_FILEFMT="db-X.Y.Z.zip"
+PRODUCT_MSI_FILEFMT="db-X.Y.Z.msi"
+PRODUCT_MSVC_VERSION=71
+
+PRODUCT_MAJOR=`echo "$PRODUCT_VERSION" | \
+ sed -e 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\1/'`
+PRODUCT_MINOR=`echo "$PRODUCT_VERSION" | \
+ sed -e 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\2/'`
+PRODUCT_PATCH=`echo "$PRODUCT_VERSION" | \
+ sed -e 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)/\3/'`
+PRODUCT_MAJMIN="${PRODUCT_MAJOR}${PRODUCT_MINOR}"
+
+# Gather command line options, and use reasonable defaults
+SetupOptions \
+ -input "$dbver.zip" \
+ -output "$dbver.msi" \
+ "$@"
+
+if [ "$OPT_USEBUILD" != '' ]; then
+ PRODUCT_BLDDIR="${OPT_USEBUILD}"
+ PRODUCT_SUB_BLDDIR="${OPT_USEBUILD}"
+fi
+
+# Choose the MS runtime libraries to use.
+if [ -e "/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/Tools/vsvars32.bat" ]; then
+ MSVC_ROOT_DIR="/cygdrive/c/Program Files/Microsoft Visual Studio 8/"
+ PRODUCT_MSVC_VERSION=80
+fi
+
+Progress "s_winmsi starting, errors to $ERRORLOG"
+
+# Fail fast for certain missing files
+
+RequireCygwin
+RequireJava
+RequireTcl
+RequireWix
+RequirePerl
+
+CreateStage
+cd ${PRODUCT_STAGE}
+
+
+CreateSources ${PRODUCT_STAGE}/Sources
+
+# The docs are put into a separate feature set
+mv ${PRODUCT_STAGE}/Sources/docs ${PRODUCT_STAGE}/
+
+# Build everything unless we were told to use a preexisting build
+if [ "$OPT_USEBUILD" = '' ]; then
+ CreateWindowsBuild
+ CreateWindowsSystem
+ CreateInclude \
+ ${PRODUCT_SUB_BLDDIR}/installed_include \
+ ${PRODUCT_SUB_BLDDIR}/dbinc/* \
+ ${PRODUCT_SUB_BLDDIR}/dbinc_auto/* \
+ ${PRODUCT_SUB_BLDDIR}/build_windows/*.h \
+ ${PRODUCT_SUB_BLDDIR}/stl/*.h
+ CreateDbPerl
+fi
+
+if ! "$OPT_SKIPGEN" ; then
+ CreateLicenseRtf ../../../LICENSE license.rtf
+ CreateWixIncludeFiles
+fi
+
+CreateMsi ../dbcorewix.in dbcore.wxs "$OPT_OUTFILE"
+
+Progress "s_winmsi finished, $OPT_OUTFILE created."
+exit 0
+