Browse Source

added release packaging and doc building scripts, fixed some osx build issues

Guenter Obiltschnig 13 years ago
parent
commit
984d8a5617

+ 1 - 1
Data/MySQL/Makefile

@@ -9,7 +9,7 @@
 include $(POCO_BASE)/build/rules/global
 
 SYSLIBS += -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX) -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -lmysqlclient
-INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/mysql/include
+INCLUDE += -I/usr/local/include/mysql/ -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/local/mysql/include
 SYSFLAGS += -DTHREADSAFE -DNO_TCL
 
 objects = Binder Extractor SessionImpl Connector \

+ 2 - 0
Data/MySQL/dependencies

@@ -0,0 +1,2 @@
+Foundation
+Data

+ 1 - 1
Data/MySQL/testsuite/Makefile

@@ -8,7 +8,7 @@
 
 include $(POCO_BASE)/build/rules/global
 
-INCLUDE += -I./../include -I/usr/local/include/mysql -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/mysql/include
+INCLUDE += -I./../include -I/usr/local/include/mysql -I/usr/include/mysql/ -I/usr/mysql/include/mysql -I/usr/local/mysql/include
 
 # Note: linking order is important, do not change it.
 SYSLIBS += -L/usr/local/lib$(LIB64SUFFIX)/mysql -L/usr/lib$(LIB64SUFFIX)/mysql -L/usr/mysql/lib$(LIB64SUFFIX) -L/usr/mysql/lib$(LIB64SUFFIX)/mysql -L/usr/local/mysql/lib$(LIB64SUFFIX) -lmysqlclient -lz -lpthread -ldl

+ 30 - 19
Data/ODBC/ODBC.make

@@ -6,8 +6,18 @@
 # Makefile fragment for finding ODBC library
 #
 
-ifndef POCO_ODBC_LIB_DIR
-POCO_ODBC_LIB_DIR = /usr/lib
+ifndef POCO_ODBC_INCLUDE
+POCO_ODBC_INCLUDE = /usr/include
+endif
+
+ifndef POCO_ODBC_LIB
+ifeq (0, $(shell test -d /usr/lib/$(OSARCH)-linux-gnu; echo $$?))
+POCO_ODBC_LIB = /usr/lib/$(OSARCH)-linux-gnu
+else ifeq (0, $(shell test -d /usr/lib64; echo $$?))
+POCO_ODBC_LIB = /usr/lib64
+else 
+POCO_ODBC_LIB = /usr/lib
+endif
 endif
 
 ifeq ($(LINKMODE),STATIC)
@@ -16,19 +26,20 @@ else
 LIBLINKEXT = $(SHAREDLIBLINKEXT)
 endif
 
-SYSLIBS += -L$(POCO_ODBC_LIB_DIR)
+INCLUDE += -I$(POCO_ODBC_INCLUDE)
+SYSLIBS += -L$(POCO_ODBC_LIB)
 
-###########
-# MinGW   #
-###########
+##
+## MinGW
+##
 ifeq ($(POCO_CONFIG),MinGW)
 # -DODBCVER=0x0300: SQLHandle declaration issue
 # -DNOMINMAX      : MIN/MAX macros defined in windows conflict with libstdc++
 CXXFLAGS += -DODBCVER=0x0300 -DNOMINMAX
 
-###########
-# Cygwin  #
-###########
+##
+## Cygwin
+##
 else ifeq ($(POCO_CONFIG),CYGWIN)
 # -DODBCVER=0x0300: SQLHandle declaration issue
 # -DNOMINMAX      : MIN/MAX macros defined in windows conflict with libstdc++
@@ -36,20 +47,20 @@ CXXFLAGS += -DODBCVER=0x0300 -DNOMINMAX
 # CYGWIN platform has its own ODBC library in /lib/w32api 
 SYSLIBS += -L/lib/w32api -lodbc32 -lodbccp32
 
-############
-# unixODBC #
-############
-else ifeq (0, $(shell test -e $(POCO_ODBC_LIB_DIR)/libodbc$(LIBLINKEXT); echo $$?))
+##
+## unixODBC
+##
+else ifeq (0, $(shell test -e $(POCO_ODBC_LIB)/libodbc$(LIBLINKEXT); echo $$?))
 SYSLIBS += -lodbc -lodbcinst
 COMMONFLAGS += -DPOCO_UNIXODBC
 
-############
-# iODBC    #
-############
-else ifeq (0, $(shell test -e $(POCO_ODBC_LIB_DIR)/libiodbc$(LIBLINKEXT); echo$$?))
+##
+## iODBC
+##
+else ifeq (0, $(shell test -e $(POCO_ODBC_LIB)/libiodbc$(LIBLINKEXT); echo $$?))
 SYSLIBS += -liodbc -liodbcinst
-COMMONFLAGS += -DPOCO_IODBC
+COMMONFLAGS += -DPOCO_IODBC -I/usr/include/iodbc
 
 else
-$(error No ODBC library found in $(POCO_ODBC_LIB_DIR). Please install unixODBC or iODBC and try again.)
+$(error No ODBC library found. Please install unixODBC or iODBC or specify POCO_ODBC_LIB and try again)
 endif

+ 106 - 0
PocoDoc/cfg/mkdocumentation.xml

@@ -0,0 +1,106 @@
+<AppConfig>
+	<PocoDoc>
+		<files>
+			<include>
+				${PocoBuild}/*/include/Poco/*.h
+				${PocoBuild}/*/include/Poco/*/*.h
+				${PocoBuild}/*/include/Poco/*/*/*.h
+				${PocoBuild}/*/include/Poco/*/*.h
+				${PocoBuild}/*/*/include/Poco/*/*/*.h
+			</include>
+			<exclude>
+				*_*.h,
+				expat*.h,
+				zconf.h,
+				zlib.h,
+				${PocoBuild}/Util/include/Poco/Util/Units.h
+			</exclude>
+		</files>
+		<pages>
+			${PocoBuild}/doc/*.page,
+			${PocoBuild}/*/doc/*.page
+			${PocoBuild}/*/*/doc/*.page
+		</pages>
+		<resources>
+			${PocoBase}/PocoDoc/resources/css,
+			${PocoBase}/PocoDoc/resources/images,
+			${PocoBase}/PocoDoc/resources/platform/index.html,
+			${PocoBase}/PocoDoc/resources/platform/welcome.thtml,
+			${PocoBase}/PocoDoc/resources/platform/images,
+			${PocoBuild}/*/doc/images
+		</resources>
+		<compiler>
+			<exec>g++</exec>
+			<options>
+				${Includes},
+				-I/usr/local/mysql/include,
+				-D_DEBUG,
+				-E,
+				-C
+			</options>
+			<path></path>
+			<usePipe>true</usePipe>
+		</compiler>
+		<language>EN</language>
+		<charset>utf-8</charset>
+		<software>Applied Informatics C++ Libraries and Tools</software>
+		<company>Applied Informatics Software Engineering GmbH and Contributors</company>
+		<companyURI>http://www.appinf.com/</companyURI>
+		<headerImage>images/headerlogo.png</headerImage>
+	</PocoDoc>
+	<Translations>
+		<EN>
+			<All_Base_Classes>All Base Classes</All_Base_Classes>
+			<All_Symbols>All Symbols</All_Symbols>
+			<Anonymous>Anonymous</Anonymous>
+			<Constructors>Constructors</Constructors>
+			<Class>Class</Class>
+			<Deprecated>Deprecated</Deprecated>
+			<Description>Description</Description>
+			<Destructor>Destructor</Destructor>
+			<Direct_Base_Classes>Direct Base Classes</Direct_Base_Classes>
+			<Enumerations>Enumerations</Enumerations>
+			<Functions>Functions</Functions>
+			<Header>Header</Header>
+			<iff>if and only if</iff>
+			<Inheritance>Inheritance</Inheritance>
+			<Inherited_Functions>Inherited Functions</Inherited_Functions>
+			<is_deprecated>is deprecated and should no longer be used</is_deprecated>
+			<Known_Derived_Classes>Known Derived Classes</Known_Derived_Classes>
+			<Library>Library</Library>
+			<Member_Functions>Member Functions</Member_Functions>
+			<Member_Summary>Member Summary</Member_Summary>
+			<more>more...</more>
+			<Namespaces>Namespaces</Namespaces>
+			<Namespace>Namespace</Namespace>
+			<Nested_Classes>Nested Classes</Nested_Classes>
+			<Package>Package</Package>
+			<Packages>Packages</Packages>
+			<Package_Index>Package Index</Package_Index>
+			<See_also>See also</See_also>
+			<Struct>Struct</Struct>
+			<Symbol_Index>Symbol Index</Symbol_Index>
+			<This>This</This>
+			<Types>Types</Types>
+			<Variables>Variables</Variables>
+			<TOC>Contents</TOC>
+			<Guides>User Guides and Tutorials</Guides>
+			<AAAIntroduction>Introduction</AAAIntroduction>
+		</EN>
+	</Translations>
+
+	<logging>
+		<loggers>
+			<root>
+				<channel>c1</channel>
+				<level>warning</level>
+			</root>
+		</loggers>
+		<channels>
+			<c1>
+				<class>ConsoleChannel</class>
+				<pattern>%s: [%p] %t</pattern>
+			</c1>
+		</channels>
+	</logging>	
+</AppConfig>

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.5.0d1 (2012-04-22)
+1.5.0

+ 48 - 20
release/script/cpproj

@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# $Id: //poco/1.3/release/script/cpproj#2 $
+# $Id: //poco/1.4/release/script/cpproj#6 $
 #
 # cpproj
 #
@@ -11,6 +11,7 @@
 
 src=$1
 dst=$2
+extradirs="doc templates res bundle sql"
 
 if [ "$src" = "" ] ; then
 	echo "usage: $0 <source> <destination>"
@@ -32,10 +33,18 @@ fi
 cp ${src}/src/* ${dst}/src
 cp ${src}/*.sln ${dst}
 cp ${src}/*.vcproj ${dst}
+cp ${src}/*.vcxproj ${dst}
+cp ${src}/*.vcxproj.filters ${dst}
+cp ${src}/*.vcxproj.user ${dst}
 cp ${src}/Makefile* ${dst}
+cp ${src}/*.make ${dst}
+cp ${src}/*.progen ${dst}
 if [ "`find ${src} -name '*.vmsbuild'`" != "" ] ; then
 	cp ${src}/*.vmsbuild ${dst}
 fi
+if [ "`find ${src} -name '*.vxbuild'`" != "" ] ; then
+	cp ${src}/*.vxbuild ${dst}
+fi
 if [ "`find ${src} -name '*.bndlspec'`" != "" ] ; then
 	cp ${src}/*.bndlspec ${dst}
 fi
@@ -45,16 +54,6 @@ if [ -f ${src}/.project ] ; then
 	cp ${src}/.cdtproject ${dst}
 fi
 
-if [ -d ${src}/doc ] ; then
-	mkdir -p ${dst}/doc
-	cp -R ${src}/doc/* ${dst}/doc
-fi
-
-if [ -d ${src}/templates ] ; then
-	mkdir -p ${dst}/templates
-	cp -R ${src}/templates/* ${dst}/templates
-fi
-
 if [ -d ${src}/testsuite ] ; then
 	mkdir -p ${dst}/testsuite
 	mkdir -p ${dst}/testsuite/src
@@ -71,13 +70,21 @@ if [ -d ${src}/testsuite ] ; then
 
 	cp ${src}/testsuite/src/* ${dst}/testsuite/src
 	cp ${src}/testsuite/*.vcproj ${dst}/testsuite
+	cp ${src}/testsuite/*.vcxproj ${dst}/testsuite
+	cp ${src}/testsuite/*.vcxproj.filters ${dst}/testsuite
+	cp ${src}/testsuite/*.vcxproj.user ${dst}/testsuite
 	cp ${src}/testsuite/Makefile* ${dst}/testsuite
+	cp ${src}/testsuite/*.make ${dst}/testsuite
+	cp ${src}/testsuite/*.progen ${dst}/testsuite
 	if [ "`find ${src}/testsuite -name '*.vmsbuild'`" != "" ] ; then
 		cp ${src}/testsuite/*.vmsbuild ${dst}/testsuite
 	fi
 	if [ "`find ${src}/testsuite -name '*.opt'`" != "" ] ; then
 		cp ${src}/testsuite/*.opt ${dst}/testsuite
 	fi
+	if [ "`find ${src}/testsuite -name '*.vxbuild'`" != "" ] ; then
+		cp ${src}/testsuite/*.vxbuild ${dst}/testsuite
+	fi
 	if [ "`find ${src}/testsuite -name '*.properties'`" != "" ] ; then
 		cp ${src}/testsuite/*.properties ${dst}/testsuite
 	fi
@@ -89,23 +96,26 @@ if [ -d ${src}/testsuite ] ; then
 	fi
 fi
 
-if [ -d ${src}/bundle ] ; then
-	mkdir -p ${dst}/bundle
-	cp -R ${src}/bundle/* ${dst}/bundle
+if [ -f ${src}/extradirs ] ; then
+	extradirs="$extradirs `cat ${src}/extradirs`"
 fi
 
-if [ -d ${src}/res ] ; then
-	mkdir -p ${dst}/res
-	cp -R ${src}/res/* ${dst}/res
-fi
+for extradir in $extradirs ;
+do
+	if [ -d ${src}/${extradir} ] ; then
+		mkdir -p ${dst}/${extradir}
+		cp -R ${src}/${extradir}/* ${dst}/${extradir}
+	fi
+done
 
 if [ -d ${src}/samples ] ; then
 	mkdir -p ${dst}/samples
 
 	cp ${src}/samples/*.sln ${dst}/samples
 	cp ${src}/samples/Makefile* ${dst}/samples
+	cp ${src}/samples/*.progen ${dst}/samples
 	
-	samples=`find ${src}/samples -maxdepth 1 -mindepth 1 -type d -print | sed "s:^.*/::"`
+	samples=`find ${src}/samples/* -type d -print -prune | sed "s:^.*/::"`
 	
 	for sample in $samples ;
 	do
@@ -125,15 +135,33 @@ if [ -d ${src}/samples ] ; then
 				mkdir -p ${dst}/samples/${sample}/res
 				cp -R ${src}/samples/${sample}/res/* ${dst}/samples/${sample}/res
 			fi
+
+			if [ -d ${src}/samples/${sample}/xml ] ; then
+				mkdir -p ${dst}/samples/${sample}/xml
+				cp -R ${src}/samples/${sample}/xml/* ${dst}/samples/${sample}/xml
+			fi
+
+			if [ -d ${src}/samples/${sample}/media ] ; then
+				mkdir -p ${dst}/samples/${sample}/media
+				cp -R ${src}/samples/${sample}/media/* ${dst}/samples/${sample}/media
+			fi
 			
 			cp ${src}/samples/${sample}/*.vcproj ${dst}/samples/${sample}
+			cp ${src}/samples/${sample}/*.vcxproj ${dst}/samples/${sample}
+			cp ${src}/samples/${sample}/*.vcxproj.filters ${dst}/samples/${sample}
+			cp ${src}/samples/${sample}/*.vcxproj.user ${dst}/samples/${sample}
 			cp ${src}/samples/${sample}/Makefile* ${dst}/samples/${sample}
+			cp ${src}/samples/${sample}/*.make ${dst}/samples/${sample}
+			cp ${src}/samples/${sample}/*.progen ${dst}/samples/${sample}
 			if [ "`find ${src}/samples/${sample}/ -name '*.vmsbuild'`" != "" ] ; then
 				cp ${src}/samples/${sample}/*.vmsbuild ${dst}/samples/${sample}
 			fi
 			if [ "`find ${src}/samples/${sample}/ -name '*.opt'`" != "" ] ; then
 				cp ${src}/samples/${sample}/*.opt ${dst}/samples/${sample}
 			fi
+			if [ "`find ${src}/samples/${sample}/ -name '*.vxbuild'`" != "" ] ; then
+				cp ${src}/samples/${sample}/*.vxbuild ${dst}/samples/${sample}
+			fi
 			if [ "`find ${src}/samples/${sample}/ -name '*.properties'`" != "" ] ; then
 				cp ${src}/samples/${sample}/*.properties ${dst}/samples/${sample}
 			fi
@@ -181,4 +209,4 @@ if [ -d ${src}/samples ] ; then
 			cp -R ${src}/samples/${sample}/* ${dst}/samples/${sample}
 		fi
 	done
-fi
+fi

+ 87 - 0
release/script/mkdoc

@@ -0,0 +1,87 @@
+#! /bin/sh
+#
+# $Id: //poco/1.4/release/script/mkdoc#2 $
+#
+# mkdoc
+#
+# Create reference documentation for a POCO release.
+# This is a wrapper for mkdocumentation that syncs to the
+# Perforce head revision, reads the current
+# version from $POCO_BASE/VERSION and requires a release
+# specification (loaded from $POCO_BASE/release/spec/*.release)
+# as argument.
+#
+# usage: mkdoc [-l <perforce-label>] [<specfile>]
+#
+
+if [ "$POCO_BASE" = "" ] ; then
+  echo "Error: POCO_BASE not set."
+  exit 1
+fi
+
+spec=""
+docConfig=$POCO_BASE/PocoDoc/cfg/mkdoc-poco.xml
+while [ "$1" != "" ] ; 
+do
+	if [ "$1" = "-C" ] ; then
+		shift
+		docConfig=$1
+		shift
+	elif [ "$1" = "-v" ] ; then
+		shift
+		version=$1
+		shift
+	else
+		spec=$1
+		shift
+	fi
+done
+
+if [ "$spec" != "" ] ; then
+  relspec="-f release/spec/${spec}.release"
+  tag="-$spec"
+  reltag="-t $spec"
+else
+  relspec=""
+  reltag=""
+  tag=""
+fi
+
+cd $POCO_BASE
+
+if [ ! -f VERSION ] ; then
+  echo "Error: No VERSION file found."
+  exit 2
+fi
+
+if [ "$version" = "" ] ; then
+	read version <$POCO_BASE/VERSION
+fi
+release=$version$tag
+
+#
+# Build release
+#
+
+echo "Building tools"
+osname=`uname -s | tr ' ' '_'`
+osarch=`uname -m | tr ' ' '_'`
+
+if [ $osname = "Darwin" ] ; then
+	archpath=`dirname stage/tools/PocoDoc/bin/Darwin/*/PocoDoc`
+	osarch=`basename $archpath`
+fi
+
+tools=$POCO_BASE/stage/tools
+rm -rf $tools
+mkdir -p $tools
+mkrelease -o $tools $version CppParser PocoDoc
+
+cd $tools
+./configure --no-tests --no-samples
+make -s -j8
+export PATH=$tools/PocoDoc/bin/$osname/$osarch:$PATH
+cd $POCO_BASE
+
+echo "Building documentation $release (using $docConfig)"
+mkdocumentation $reltag $relspec -C $docConfig -v $version

+ 139 - 0
release/script/mkdocumentation

@@ -0,0 +1,139 @@
+#! /bin/sh
+#
+# mkdocumentation
+#
+# Create reference documentation for a POCO release.
+#
+# Usage:
+#    mkdocumentation [-u] [-t <reltag>] [-f <compfile>] {<component>}
+#
+#    -u:            Upload file to release repository.
+#    -t:            Specify release tag.
+#    -f <compfile>: Component list file
+#    -c <config>:   Build using the given configuration
+#    <components>:  Additional components to include
+#
+# Environment:
+#    $POCO_BASE: POCO base directory (e.g., "/cygdrive/p/poco-1.2")
+#
+# Prerequisites:
+#    PocoDoc must be in PATH
+#
+
+
+if [ "$POCO_BASE" = "" ] ; then
+  echo "Error: POCO_BASE not set."
+  exit 1
+fi
+
+make=make
+include=`dirname $0`
+build=$POCO_BASE/stage/docbuild
+dist=$POCO_BASE/releases
+docConfig=$POCO_BASE/PocoDoc/cfg/mkdocumentation.xml
+read version <$POCO_BASE/VERSION
+
+osname=`uname -s | tr ' ' '_'`
+osarch=`uname -m | tr ' ' '_'`
+
+comps=""
+specfile=""
+tag=""
+config=""
+
+while [ "$1" != "" ] ; 
+do
+	if [ "$1" = "-f" ] ; then
+		shift
+		specfile=$1
+		shift
+	elif [ "$1" = "-t" ] ; then
+		shift
+    	tag=$1
+    	shift
+	elif [ "$1" = "-c" ] ; then
+		shift
+		config=$1
+		shift
+	elif [ "$1" = "-C" ] ; then
+		shift
+		docConfig=$1
+		shift
+	elif [ "$1" = "-v" ] ; then
+		shift
+		version=$1
+		shift
+	else
+		comps="$comps $1"
+		shift
+	fi
+done
+
+if [ "$specfile" != "" ] ; then
+	while read c
+	do
+		comps="$comps $c"
+	done <$specfile
+fi
+
+allcomps="Foundation XML JSON Util Net $comps"
+
+#
+# Clean build directory
+#
+echo "Cleaning build directory: $build"
+rm -rf $build
+mkdir -p $build
+mkdir -p $dist
+
+
+#
+# Copy POCO sources into build directory
+#
+echo "Copying sources"
+mkrelease -o $build $version $comps
+
+
+#
+# Make all files writeable
+#
+chmod -R +w $build
+
+
+#
+# Generate documentation
+#
+echo "Generating documentation"
+
+# Create a PocoDoc configuration file
+docVersion=$version
+if [ $tag ] ; then
+	docVersion="$docVersion-$tag"
+fi
+docPath=$dist/poco-${docVersion}-doc
+
+includes=""
+for inc in `find $build -name include -print` ; do
+	includes="$includes,-I$inc"
+done
+
+echo "PocoBuild=$build" >>$build/PocoDoc.ini
+echo "PocoBase=$POCO_BASE" >>$build/PocoDoc.ini
+echo "PocoDoc.output=$docPath" >>$build/PocoDoc.ini
+echo "PocoDoc.version=$docVersion" >> $build/PocoDoc.ini
+echo "Includes=$includes" >> $build/PocoDoc.ini
+
+PocoDoc --config=$docConfig --config=$build/PocoDoc.ini
+
+cd $dist
+
+chmod -R ugo+rw poco-${docVersion}-doc
+chmod -R go+r poco-${docVersion}-doc
+tar cf poco-${docVersion}-doc.tar poco-${docVersion}-doc
+gzip -f poco-${docVersion}-doc.tar
+
+if [ -x /usr/bin/zip ] ; then
+	/usr/bin/zip -r -q poco-${docVersion}-doc.zip poco-${docVersion}-doc
+fi
+
+echo "Done."

+ 79 - 0
release/script/mkrel

@@ -0,0 +1,79 @@
+#! /bin/sh
+#
+# $Id: //poco/1.4/release/script/mkrel#1 $
+#
+# mkrel
+#
+# Create a release for distribution.
+# This is a wrapper for mkrelease that syncs to the
+# Perforce head revision, reads the current
+# version from $POCO_BASE/VERSION and requires a release
+# specification (loaded from $POCO_BASE/release/spec/*.release)
+# as argument.
+#
+# usage: mkrel [<specfile>]
+#
+
+if [ "$POCO_BASE" = "" ] ; then
+  echo "Error: POCO_BASE not set."
+  exit 1
+fi
+
+cd $POCO_BASE
+
+if [ ! -f VERSION ] ; then
+  echo "Error: No VERSION file found."
+  exit 2
+fi
+
+case `uname` in
+  CYGWIN*) cygwin=1
+            ;;
+        *) cygwin=""
+            ;;
+esac
+
+label=""
+spec=""
+while [ "$1" != "" ] ; 
+do
+	if [ "$1" = "-l" ] ; then
+		shift
+		label=@$1
+		shift
+	else
+		spec=$1
+		shift
+	fi
+done
+
+
+if [ "$spec" != "" ] ; then
+  relspec="-f release/spec/${spec}.release"
+  reltag="-$spec"
+else
+  relspec=""
+  reltag=""
+fi
+
+if [ $cygwin ] ; then
+  export PWD=`cygpath -w $POCO_BASE`
+fi
+
+#
+# Sync files
+#
+echo "Syncing files..."
+p4 sync ./...$label
+
+read version <$POCO_BASE/VERSION
+release=$version$reltag
+
+#
+# Build release
+#
+echo "Building release $release"
+
+rm -rf releases/poco-$release.*
+$POCO_BASE/release/script/mkrelease $release $relspec
+

+ 105 - 23
release/script/mkrelease

@@ -1,6 +1,6 @@
-#! /bin/sh
+#! /bin/bash
 #
-# $Id: //poco/1.3/release/script/mkrelease#10 $
+# $Id: //poco/1.4/release/script/mkrelease#8 $
 #
 # mkrelease
 #
@@ -18,7 +18,14 @@ if [ "$1" = "" ] ; then
 	exit 1
 fi
 
-comps="Foundation XML Util Net"
+case `uname` in
+	CYGWIN*) cygwin=1
+		;;
+	*) cygwin=""
+		;;
+esac
+
+comps="Foundation XML JSON Util Net"
 internal=0
 specfile=""
 version=""
@@ -52,7 +59,7 @@ do
 done
 
 if [ "$specfile" != "" ] ; then
-  while read c
+	while read c
 	do
 		comps="$comps $c"
 	done <$specfile
@@ -72,21 +79,26 @@ fi
 mkdir -p ${target}
 mkdir -p ${target}/doc
 mkdir -p ${target}/contrib
+mkdir -p ${target}/patches
 
 
 #
 # readme files, etc.
 #
 echo ${version} "(`date +%Y-%m-%d`)" >${target}/VERSION
-cp ${POCO_BASE}/dist/LICENSE ${target}
-cp ${POCO_BASE}/dist/NEWS ${target}
-cp ${POCO_BASE}/dist/README ${target}
-cp ${POCO_BASE}/dist/CHANGELOG ${target}
-cp ${POCO_BASE}/dist/CONTRIBUTORS ${target}
+cp ${POCO_BASE}/LICENSE ${target}
+cp ${POCO_BASE}/NEWS ${target}
+cp ${POCO_BASE}/README ${target}
+cp ${POCO_BASE}/CHANGELOG ${target}
+cp ${POCO_BASE}/CONTRIBUTORS ${target}
+cp ${POCO_BASE}/DLLVersion.rc ${target}
 
 cp ${POCO_BASE}/doc/Acknowledgements.html ${target}/doc
+cp ${POCO_BASE}/doc/*.page ${target}/doc
 
 cp -R ${POCO_BASE}/contrib/* ${target}/contrib
+cp -R ${POCO_BASE}/patches/* ${target}/patches
+
 
 #
 # build system
@@ -95,16 +107,19 @@ mkdir -p ${target}/build/config
 mkdir -p ${target}/build/rules
 mkdir -p ${target}/build/script
 mkdir -p ${target}/build/vms
+mkdir -p ${target}/build/vxconfig
 
 cp ${POCO_BASE}/build/config/* ${target}/build/config
 cp ${POCO_BASE}/build/rules/* ${target}/build/rules
+cp ${POCO_BASE}/build/vxconfig/* ${target}/build/vxconfig
 cp ${POCO_BASE}/build/script/makedepend.* ${target}/build/script
 cp ${POCO_BASE}/build/script/makeldpath ${target}/build/script
 cp ${POCO_BASE}/build/script/shlibln ${target}/build/script
 cp ${POCO_BASE}/build/script/projname ${target}/build/script
+cp ${POCO_BASE}/build/script/vxprogen ${target}/build/script
 cp ${POCO_BASE}/build/vms/* ${target}/build/vms
-cp ${POCO_BASE}/dist/buildwin.cmd ${target}
-cp ${POCO_BASE}/dist/configure ${target}
+cp ${POCO_BASE}/buildwin.cmd ${target}
+cp ${POCO_BASE}/configure ${target}
 cp ${POCO_BASE}/buildvms.com ${target}
 cp ${POCO_BASE}/libversion ${target}
 
@@ -131,14 +146,23 @@ cp ${POCO_BASE}/CppUnit/include/CppUnit/* ${target}/CppUnit/include/CppUnit
 cp ${POCO_BASE}/CppUnit/src/* ${target}/CppUnit/src
 cp ${POCO_BASE}/CppUnit/*.sln ${target}/CppUnit
 cp ${POCO_BASE}/CppUnit/*.vcproj ${target}/CppUnit
+cp ${POCO_BASE}/CppUnit/*.vcxproj ${target}/CppUnit
+cp ${POCO_BASE}/CppUnit/*.vcxproj.filters ${target}/CppUnit
+cp ${POCO_BASE}/CppUnit/*.vcxproj.user ${target}/CppUnit
 cp ${POCO_BASE}/CppUnit/Makefile ${target}/CppUnit
 cp ${POCO_BASE}/CppUnit/*.vmsbuild ${target}/CppUnit
+cp ${POCO_BASE}/CppUnit/*.vxbuild ${target}/CppUnit
+cp ${POCO_BASE}/CppUnit/*.progen ${target}/CppUnit
 
 cp ${POCO_BASE}/CppUnit/WinTestRunner/include/WinTestRunner/* ${target}/CppUnit/WinTestRunner/include/WinTestRunner
 cp ${POCO_BASE}/CppUnit/WinTestRunner/src/* ${target}/CppUnit/WinTestRunner/src
 cp ${POCO_BASE}/CppUnit/WinTestRunner/res/WinTestRunner.rc ${target}/CppUnit/WinTestRunner/res
 cp ${POCO_BASE}/CppUnit/WinTestRunner/res/Resource.h ${target}/CppUnit/WinTestRunner/res
 cp ${POCO_BASE}/CppUnit/WinTestRunner/*.vcproj ${target}/CppUnit/WinTestRunner
+cp ${POCO_BASE}/CppUnit/WinTestRunner/*.vcxproj ${target}/CppUnit/WinTestRunner
+cp ${POCO_BASE}/CppUnit/WinTestRunner/*.vcxproj.filters ${target}/CppUnit/WinTestRunner
+cp ${POCO_BASE}/CppUnit/WinTestRunner/*.vcxproj.user ${target}/CppUnit/WinTestRunner
+cp ${POCO_BASE}/CppUnit/WinTestRunner/*.progen ${target}/CppUnit/WinTestRunner
 
 
 #
@@ -191,8 +215,10 @@ ifndef POCO_BUILD
 export POCO_BUILD=$(POCO_BASE)
 endif
 
-.PHONY: all libexecs cppunit tests samples clean distclean install
+.PHONY: poco all libexecs cppunit tests samples clean distclean install
 
+# TESTS and SAMPLES are set in config.make
+poco: libexecs $(if $(TESTS),tests) $(if $(SAMPLES),samples) 
 all: libexecs tests samples
 
 INSTALLDIR = $(DESTDIR)$(POCO_PREFIX)
@@ -250,7 +276,7 @@ echo 'samples: $(filter-out $(foreach f,$(OMIT),$f%),$(samples))' >>${target}/Ma
 
 for comp in $comps ;
 do
-	if [ `grep -c POCO_LICENSING "${POCO_BASE}/${comp}/Makefile"` != 0 ] ; then
+	if [ "`grep -c POCO_LICENSING "${POCO_BASE}/${comp}/Makefile"`" != 0 ] ; then
 		dependencies=$licensingDep
 	else
 		dependencies=""
@@ -258,6 +284,8 @@ do
 	if [ -f "${POCO_BASE}/${comp}/dependencies" ] ; then
 		for dep in `cat "${POCO_BASE}/${comp}/dependencies"` ;
 		do
+			# get rid of surrounding whitespace (trailing \r on Cygwin)
+			read dep <<< "$dep"
 			dependencies="$dependencies ${dep}-libexec"
 		done
 	fi
@@ -280,6 +308,8 @@ ENDOFSCRIPT
 		if [ -f "${POCO_BASE}/${comp}/samples/dependencies" ] ; then
 			for dep in `cat "${POCO_BASE}/${comp}/samples/dependencies"` ;
 			do
+				# get rid of surrounding whitespace (trailing \r on Cygwin)
+				read dep <<< ${dep}
 				sdependencies="$sdependencies ${dep}-libexec"
 			done
 		fi
@@ -311,6 +341,7 @@ ENDOFSCRIPT
 done
 
 cat >>${target}/Makefile <<ENDOFSCRIPT
+	\$(MAKE) -C \$(POCO_BASE)/CppUnit clean
 
 distclean:
 	rm -rf \$(POCO_BUILD)/lib
@@ -321,39 +352,90 @@ ENDOFSCRIPT
 
 
 #
-# Create Visual Studio 7.1 buils script
+# Create Visual Studio 7.1 build script
 #
 cat >${target}/build_vs71.cmd <<'ENDOFSCRIPT'
 @echo off
-buildwin 71 build shared both yes
+if defined VS71COMNTOOLS (
+call "%VS71COMNTOOLS%\vsvars32.bat")
+buildwin 71 build shared both Win32 samples
 ENDOFSCRIPT
 
 
 #
-# Create Visual Studio 8 buils script
+# Create Visual Studio 8 build script
 #
 cat >${target}/build_vs80.cmd <<'ENDOFSCRIPT'
 @echo off
-buildwin 80 build shared both yes
+if defined VS80COMNTOOLS (
+call "%VS80COMNTOOLS%\vsvars32.bat")
+buildwin 80 build shared both Win32 samples
 ENDOFSCRIPT
 
 
 #
-# Create Visual Studio 9 buils script
+# Create Visual Studio 9 build script
 #
 cat >${target}/build_vs90.cmd <<'ENDOFSCRIPT'
 @echo off
-buildwin 90 build shared both yes
+if defined VS90COMNTOOLS (
+call "%VS90COMNTOOLS%\vsvars32.bat")
+buildwin 90 build shared both Win32 samples
+ENDOFSCRIPT
+
+
+#
+# Create Visual Studio 10 build script
+#
+cat >${target}/build_vs100.cmd <<'ENDOFSCRIPT'
+@echo off
+if defined VS100COMNTOOLS (
+call "%VS100COMNTOOLS%\vsvars32.bat")
+buildwin 100 build shared both Win32 samples
+ENDOFSCRIPT
+
+
+#
+# Create Visual Studio 9 WinCE build script
+#
+cat >${target}/build_CE_vs90.cmd <<'ENDOFSCRIPT'
+@echo off
+buildwin 90 build static_mt both WinCE samples
+ENDOFSCRIPT
+
+
+#
+# Create Visual C++ Express 2008 build script
+#
+cat >${target}/build_vcexpress2008.cmd <<'ENDOFSCRIPT'
+@echo off
+buildwin 90 build shared both Win32 samples vcexpress
+ENDOFSCRIPT
+
+
+#
+# Create Visual C++ Express 2010 build script
+#
+cat >${target}/build_vcexpress2010.cmd <<'ENDOFSCRIPT'
+@echo off
+buildwin 100 build shared both Win32 samples vcexpress
 ENDOFSCRIPT
 
 
 #
 # Fix line endings
 #
-if [ -x /usr/bin/unix2dos ] ; then
-	/usr/bin/unix2dos ${target}/build_vs71.cmd
-	/usr/bin/unix2dos ${target}/build_vs80.cmd
-	/usr/bin/unix2dos ${target}/build_vs90.cmd
+if [ $cygwin ] ; then
+	if [ -x /usr/bin/unix2dos ] ; then
+		/usr/bin/unix2dos ${target}/build_vs71.cmd
+		/usr/bin/unix2dos ${target}/build_vs80.cmd
+		/usr/bin/unix2dos ${target}/build_vs90.cmd
+		/usr/bin/unix2dos ${target}/build_vs100.cmd
+		/usr/bin/unix2dos ${target}/build_CE_vs90.cmd
+		/usr/bin/unix2dos ${target}/build_vcexpress2008.cmd
+		/usr/bin/unix2dos ${target}/build_vcexpress2010.cmd
+		/usr/bin/unix2dos ${target}/Makefile
+	fi
 fi
 
 

+ 10 - 0
release/spec/all.release

@@ -0,0 +1,10 @@
+Crypto
+NetSSL_OpenSSL
+Data
+Data/SQLite
+Data/ODBC
+Data/MySQL
+Zip
+PageCompiler
+PageCompiler/File2Page
+PDF