mirror of
				https://github.com/Telecominfraproject/wlan-cloud-lib-poco.git
				synced 2025-10-31 02:27:56 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			460 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			460 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #! /bin/bash
 | |
| #
 | |
| # $Id: //poco/1.4/release/script/mkrelease#8 $
 | |
| #
 | |
| # mkrelease
 | |
| #
 | |
| # Create a release for distribution.
 | |
| #
 | |
| # usage: mkrelease [-i] [-f specfile] <version> [<component>...]
 | |
| #
 | |
| 
 | |
| if [ "$1" = "" ] ; then
 | |
| 	echo "usage: $0 [-i] <version> [<component>...]"
 | |
| 	echo "       -i          - include internal tools"
 | |
| 	echo "       -f specfile - read component list from specfile"
 | |
| 	echo "       -o dir      - specify output directory"
 | |
| 	echo "       -c location - specify line-ending conversion utility (enables conversion)"
 | |
| 	echo "       -l          - include licensing"
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| comps="Foundation XML JSON Util Net"
 | |
| internal=0
 | |
| specfile=""
 | |
| version=""
 | |
| output=""
 | |
| lineEndConv=""
 | |
| licensingDep=""
 | |
| 
 | |
| while [ "$1" != "" ] ; 
 | |
| do
 | |
| 	if [ "$1" = "-i" ] ; then
 | |
| 		shift
 | |
| 		internal=1
 | |
| 	elif [ "$1" = "-f" ] ; then
 | |
| 		shift
 | |
| 		specfile=$1
 | |
| 		shift
 | |
| 	elif [ "$1" = "-o" ] ; then
 | |
| 		shift
 | |
| 		output=$1
 | |
| 		shift
 | |
| 	elif [ "$1" = "-c" ] ; then
 | |
| 		shift
 | |
| 		lineEndConv=$1
 | |
| 		shift
 | |
| 	elif [ "$1" = "-l" ] ; then
 | |
| 		shift
 | |
| 		licensingDep="Licensing-libexec"
 | |
| 		comps="$comps Licensing"
 | |
| 	elif [ "$version" = "" ] ; then
 | |
| 		version=$1
 | |
| 		shift
 | |
| 	else
 | |
| 		comps="$comps $1"
 | |
| 		shift
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| if [ "$specfile" != "" ] ; then
 | |
| 	while read c
 | |
| 	do
 | |
| 		comps="$comps $c"
 | |
| 	done <$specfile
 | |
| fi
 | |
| 
 | |
| if [ "$version" = "" ] ; then
 | |
| 	echo "Error: no version specified."
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| if [ "$output" != "" ] ; then
 | |
| 	target=$output
 | |
| else
 | |
| 	target=$POCO_BASE/releases/poco-${version}
 | |
| 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}/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
 | |
| #
 | |
| 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}/buildwin.cmd ${target}
 | |
| cp ${POCO_BASE}/configure ${target}
 | |
| cp ${POCO_BASE}/buildvms.com ${target}
 | |
| cp ${POCO_BASE}/libversion ${target}
 | |
| 
 | |
| if [ $internal = 1 ] ; then
 | |
| 	cp ${POCO_BASE}/build/script/testall ${target}/build/script
 | |
| 	cp ${POCO_BASE}/build/script/waitfortest ${target}/build/script
 | |
| fi
 | |
| 
 | |
| 
 | |
| #
 | |
| # CppUnit
 | |
| #
 | |
| mkdir -p ${target}/CppUnit
 | |
| mkdir -p ${target}/CppUnit/doc
 | |
| mkdir -p ${target}/CppUnit/include/CppUnit
 | |
| mkdir -p ${target}/CppUnit/src
 | |
| mkdir -p ${target}/CppUnit/WinTestRunner
 | |
| mkdir -p ${target}/CppUnit/WinTestRunner/include/WinTestRunner
 | |
| mkdir -p ${target}/CppUnit/WinTestRunner/src
 | |
| mkdir -p ${target}/CppUnit/WinTestRunner/res
 | |
| 
 | |
| cp ${POCO_BASE}/CppUnit/doc/* ${target}/CppUnit/doc
 | |
| 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
 | |
| 
 | |
| 
 | |
| #
 | |
| # Copy components
 | |
| #
 | |
| for comp in $comps ;
 | |
| do
 | |
| 	cpproj ${POCO_BASE}/$comp ${target}/$comp
 | |
| done
 | |
| 
 | |
| 
 | |
| #
 | |
| # Create components file
 | |
| #
 | |
| echo "CppUnit" >${target}/components
 | |
| for comp in $comps ;
 | |
| do
 | |
| 	echo $comp >>${target}/components
 | |
| done
 | |
| 
 | |
| 
 | |
| #
 | |
| # Make all files writeable
 | |
| #
 | |
| chmod -R +w ${target}
 | |
| 
 | |
| 
 | |
| #
 | |
| # Generate Makefile
 | |
| #
 | |
| cat >${target}/Makefile <<'ENDOFSCRIPT'
 | |
| #
 | |
| # Makefile
 | |
| #
 | |
| # The global Makefile for POCO [generated by mkrelease]
 | |
| #
 | |
| 
 | |
| sinclude config.make
 | |
| sinclude config.build
 | |
| 
 | |
| ifndef POCO_BASE
 | |
| $(warning WARNING: POCO_BASE is not defined. Assuming current directory.)
 | |
| export POCO_BASE=$(shell pwd)
 | |
| endif
 | |
| 
 | |
| ifndef POCO_PREFIX
 | |
| export POCO_PREFIX=/usr/local
 | |
| endif
 | |
| 
 | |
| ifndef POCO_BUILD
 | |
| export POCO_BUILD=$(POCO_BASE)
 | |
| endif
 | |
| 
 | |
| .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)
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| echo "COMPONENTS = $comps" >>${target}/Makefile
 | |
| 
 | |
| cat >>${target}/Makefile <<'ENDOFSCRIPT'
 | |
| 
 | |
| cppunit:
 | |
| 	$(MAKE) -C $(POCO_BASE)/CppUnit 
 | |
| 
 | |
| install: libexecs
 | |
| 	mkdir -p $(INSTALLDIR)/include/Poco
 | |
| 	mkdir -p $(INSTALLDIR)/lib
 | |
| 	mkdir -p $(INSTALLDIR)/bin
 | |
| 	for comp in $(COMPONENTS) ; do \
 | |
| 		if [ -d "$(POCO_BASE)/$$comp/include" ] ; then \
 | |
| 			cp -Rf $(POCO_BASE)/$$comp/include/* $(INSTALLDIR)/include/ ; \
 | |
| 		fi ; \
 | |
| 		if [ -d "$(POCO_BUILD)/$$comp/bin" ] ; then \
 | |
| 			find $(POCO_BUILD)/$$comp/bin -perm -700 -type f -exec cp -f {} $(INSTALLDIR)/bin \; ; \
 | |
| 		fi ; \
 | |
| 	done
 | |
| 	find $(POCO_BUILD)/lib -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib \;
 | |
| 	find $(POCO_BUILD)/lib -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib \;
 | |
| 
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| libexecs=""
 | |
| tests=""
 | |
| samples=""
 | |
| for comp in $comps ;
 | |
| do
 | |
| 	libexecs="$libexecs ${comp}-libexec"
 | |
| 	if [ -d "${POCO_BASE}/${comp}/testsuite" ] ; then
 | |
| 		tests="$tests ${comp}-tests"
 | |
| 	fi
 | |
| 	if [ -d "${POCO_BASE}/${comp}/samples" ] ; then
 | |
| 		samples="$samples ${comp}-samples"
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| echo "libexecs = $libexecs" >>${target}/Makefile
 | |
| echo "tests    = $tests" >> ${target}/Makefile
 | |
| echo "samples  = $samples" >> ${target}/Makefile
 | |
| echo "" >>${target}/Makefile
 | |
| echo '.PHONY: $(libexecs)' >>${target}/Makefile
 | |
| echo '.PHONY: $(tests)' >>${target}/Makefile
 | |
| echo '.PHONY: $(samples)' >>${target}/Makefile
 | |
| echo "" >>${target}/Makefile
 | |
| echo 'libexecs: $(filter-out $(foreach f,$(OMIT),$f%),$(libexecs))' >>${target}/Makefile
 | |
| echo 'tests: $(filter-out $(foreach f,$(OMIT),$f%),$(tests))' >>${target}/Makefile
 | |
| echo 'samples: $(filter-out $(foreach f,$(OMIT),$f%),$(samples))' >>${target}/Makefile
 | |
| 
 | |
| for comp in $comps ;
 | |
| do
 | |
| 	if [ "`grep -c POCO_LICENSING "${POCO_BASE}/${comp}/Makefile"`" != 0 ] ; then
 | |
| 		dependencies=$licensingDep
 | |
| 	else
 | |
| 		dependencies=""
 | |
| 	fi
 | |
| 	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
 | |
| 	cat >>${target}/Makefile <<ENDOFSCRIPT 
 | |
| 
 | |
| ${comp}-libexec: $dependencies
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp}
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| 	if [ -d "${POCO_BASE}/${comp}/testsuite" ] ; then
 | |
| 		cat >>${target}/Makefile <<ENDOFSCRIPT 
 | |
| 
 | |
| ${comp}-tests: ${comp}-libexec cppunit
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp}/testsuite
 | |
| ENDOFSCRIPT
 | |
| 	fi
 | |
| 	
 | |
| 	if [ -d "${POCO_BASE}/${comp}/samples" ] ; then
 | |
| 		sdependencies=""
 | |
| 		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
 | |
| 		cat >>${target}/Makefile <<ENDOFSCRIPT 
 | |
| 	
 | |
| ${comp}-samples: ${comp}-libexec $sdependencies
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp}/samples
 | |
| ENDOFSCRIPT
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| echo "" >>${target}/Makefile
 | |
| echo "clean:" >>${target}/Makefile
 | |
| for comp in $comps ;
 | |
| do
 | |
| 	cat >>${target}/Makefile <<ENDOFSCRIPT
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp} clean
 | |
| ENDOFSCRIPT
 | |
| 	if [ -f ${POCO_BASE}/${comp}/testsuite/Makefile ] ; then
 | |
| 		cat >>${target}/Makefile <<ENDOFSCRIPT
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp}/testsuite clean
 | |
| ENDOFSCRIPT
 | |
| 	fi
 | |
| 	if [ -f ${POCO_BASE}/${comp}/samples/Makefile ] ; then
 | |
| 		cat >>${target}/Makefile <<ENDOFSCRIPT
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/${comp}/samples clean
 | |
| ENDOFSCRIPT
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| cat >>${target}/Makefile <<ENDOFSCRIPT
 | |
| 	\$(MAKE) -C \$(POCO_BASE)/CppUnit clean
 | |
| 
 | |
| distclean:
 | |
| 	rm -rf \$(POCO_BUILD)/lib
 | |
| 	find \$(POCO_BUILD) -name obj -type d -print0 | xargs -0 rm -rf
 | |
| 	find \$(POCO_BUILD) -name .dep -type d -print0 | xargs -0 rm -rf
 | |
| 	find \$(POCO_BUILD) -name bin -type d -print0 | xargs -0 rm -rf
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| 
 | |
| #
 | |
| # Create Visual Studio 7.1 build script
 | |
| #
 | |
| cat >${target}/build_vs71.cmd <<'ENDOFSCRIPT'
 | |
| @echo off
 | |
| if defined VS71COMNTOOLS (
 | |
| call "%VS71COMNTOOLS%\vsvars32.bat")
 | |
| buildwin 71 build shared both Win32 samples
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| 
 | |
| #
 | |
| # Create Visual Studio 8 build script
 | |
| #
 | |
| cat >${target}/build_vs80.cmd <<'ENDOFSCRIPT'
 | |
| @echo off
 | |
| if defined VS80COMNTOOLS (
 | |
| call "%VS80COMNTOOLS%\vsvars32.bat")
 | |
| buildwin 80 build shared both Win32 samples
 | |
| ENDOFSCRIPT
 | |
| 
 | |
| 
 | |
| #
 | |
| # Create Visual Studio 9 build script
 | |
| #
 | |
| cat >${target}/build_vs90.cmd <<'ENDOFSCRIPT'
 | |
| @echo off
 | |
| 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 [ "$lineEndConv" != "" ] ; then
 | |
| 	$lineEndConv ${target}/build_vs71.cmd
 | |
| 	$lineEndConv ${target}/build_vs80.cmd
 | |
| 	$lineEndConv ${target}/build_vs90.cmd
 | |
| 	$lineEndConv ${target}/build_vs100.cmd
 | |
| 	$lineEndConv ${target}/build_CE_vs90.cmd
 | |
| 	$lineEndConv ${target}/build_vcexpress2008.cmd
 | |
| 	$lineEndConv ${target}/build_vcexpress2010.cmd
 | |
| 	$lineEndConv ${target}/Makefile
 | |
| 	$lineEndConv ${target}/components
 | |
| fi
 | |
| 
 | |
| 
 | |
| #
 | |
| # Create .tar and .zip archives
 | |
| #
 | |
| if [ "$output" = "" ] ; then
 | |
| 	cd releases
 | |
| 	find ${target}/ -print | sed "s:^${target}/*::" >${target}/MANIFEST
 | |
| 	
 | |
| 	tar cf poco-${version}.tar poco-${version}
 | |
| 	gzip poco-${version}.tar
 | |
| 	
 | |
| 	tar cf poco-${version}.tar poco-${version}
 | |
| 	bzip2 poco-${version}.tar
 | |
| 	
 | |
| 	if [ -x /usr/bin/zip ] ; then
 | |
| 		/usr/bin/zip -r -q poco-${version}.zip poco-${version}
 | |
| 	fi
 | |
| fi
 | |
| 
 | |
| exit 0
 | 
