From 874eaba0a9bd7f986b81d8f50f35bcbd92f6484c Mon Sep 17 00:00:00 2001 From: Scott R Charlton Date: Sat, 26 Mar 2011 00:23:20 +0000 Subject: [PATCH] added to build linux configure git-svn-id: svn://136.177.114.72/svn_GW/IPhreeqc/trunk@5248 1feff8c3-07ed-0310-ac33-dd36852eb9cd --- packages/Makefile | 33 ++++++ packages/configure/Makefile | 51 ++++++++ packages/dist.sh | 227 ++++++++++++++++++++++++++++++++++++ 3 files changed, 311 insertions(+) create mode 100644 packages/Makefile create mode 100644 packages/configure/Makefile create mode 100755 packages/dist.sh diff --git a/packages/Makefile b/packages/Makefile new file mode 100644 index 00000000..68b979fd --- /dev/null +++ b/packages/Makefile @@ -0,0 +1,33 @@ +########################################################################## +# Build the tar.gz for building with configure/make. # +########################################################################## + +NAME ?= IPhreeqc + +UPDATE := $(shell svn up ..) + +REL := $(shell svn st -v ../configure.ac | cut -b 10- | ( read one two ; echo $$one ) ) + +TARBALL := $(NAME)-$(VER)-$(REL).tar.gz + +REPOS_PATH ?= trunk + +all : $(TARBALL) + +$(TARBALL) : dist.sh +ifeq ($(DATE),) + $(error usage: make DATE= VER= [REL=x]) +endif +ifeq ($(VER),) + $(error usage: make DATE= VER= [REL=x]) +endif + @echo "Creating $(TARBALL)" + @rm -f $(TARBALL) + time ./dist.sh -v $(VER) -r $(REL) -d $(DATE) -pr $(REPOS_PATH) 2>&1 | tee dist-$(REL).log + +usage: + @echo "" + @echo "usage: make DATE= VER= [REL=x]" + @echo " ie make DATE=8/12/2010 VER=2.17.3" + @echo " ie make DATE=8/12/2010 VER=2.17.3 REL=4000" + @echo "" diff --git a/packages/configure/Makefile b/packages/configure/Makefile new file mode 100644 index 00000000..aa458934 --- /dev/null +++ b/packages/configure/Makefile @@ -0,0 +1,51 @@ +########################################################################## +# Build the tar.gz for building with configure/make. # +########################################################################## + +ifeq ($(DATE),) + $(error usage: make DATE= VER= [REL=x]) +endif +ifeq ($(VER),) + $(error usage: make DATE= VER= [REL=x]) +endif + + +NAME ?= IPhreeqc + +LNAME := $(shell echo $(NAME) | tr '[A-Z]' '[a-z]') + +UPDATE := $(shell svn up ../..) + +REL := $(shell svn st -v ../../configure.ac | cut -b 10- | ( read one two ; echo $$one ) ) + +CONF_PKG := $(LNAME)-$(VER)-$(REL).tar.gz + +TARBALL := $(NAME)-$(VER)-$(REL).tar.gz + +REPOS_PATH ?= trunk + + + +all : $(CONF_PKG) + @echo "DATE=$(DATE)" >> history + @echo "VER=$(VER)" >> history + @echo "REL=$(REL)" >> history + @echo "===================" >> history + + +$(CONF_PKG) : ../$(TARBALL) + rm -rf $(NAME)-$(VER)-$(REL) + tar xvzf ../$(TARBALL) + cd $(NAME)-$(VER)-$(REL) && autoreconf -fvi + cd $(NAME)-$(VER)-$(REL) && mkdir _build + cd $(NAME)-$(VER)-$(REL) && cd _build && ../configure + cd $(NAME)-$(VER)-$(REL) && cd _build && make distcheck + mv $(NAME)-$(VER)-$(REL)/_build/$(CONF_PKG) . + rm -rf $(NAME)-$(VER)-$(REL) + +usage: + @echo "" + @echo "usage: make DATE= VER= [REL=x]" + @echo " ie make DATE=8/12/2010 VER=2.17.3" + @echo " ie make DATE=8/12/2010 VER=2.17.3 REL=4000" + @echo "" diff --git a/packages/dist.sh b/packages/dist.sh new file mode 100755 index 00000000..0c458675 --- /dev/null +++ b/packages/dist.sh @@ -0,0 +1,227 @@ +#!/bin/sh +# $Id: dist.sh 4710 2010-08-09 22:22:55Z charlton $ + +# +# USAGE: ./dist.sh -v VERSION -r REVISION -d RELEASE_DATE +# [-rs REVISION-SVN] [-pr REPOS-PATH] +# [-win] [-alpha ALPHA_NUM|-beta BETA_NUM|-rc RC_NUM] +# +# Create a distribution tarball, labelling it with the given VERSION. +# The REVISION or REVISION-SVN will be used in the version string. +# The tarball will be constructed from the root located at REPOS-PATH. +# If REPOS-PATH is not specified then the default is "branches/VERSION". +# For example, the command line: +# +# ./dist.sh -v 0.24.2 -r 6284 -d 2/7/05 +# +# from the top-level of a branches/0.24.2 working copy will create +# the 0.24.2 release tarball. +# +# When building a alpha, beta or rc tarballs pass the apppropriate flag +# followed by the number for that release. For example you'd do +# the following for a Beta 1 release: +# ./dist.sh -v 1.1.0 -r 10277 -pr branches/1.1.x -beta 1 +# +# If neither an -alpha, -beta or -rc option with a number is +# specified, it will build a release tarball. +# +# To build a Windows package pass -win. + +# echo everything +# set -x + +# A quick and dirty usage message +USAGE="USAGE: ./dist.sh -v VERSION -r REVISION -d RELEASE_DATE \ +[-rs REVISION-SVN ] [-pr REPOS-PATH] \ +[-alpha ALPHA_NUM|-beta BETA_NUM|-rc RC_NUM] \ +[-win] + EXAMPLES: ./dist.sh -v 1.1 -r 150 -d 2/7/05 + ./dist.sh -v 1.1 -r 150 -d 2/7/05 -pr trunk" + + +# Let's check and set all the arguments +ARG_PREV="" + +for ARG in $@ +do + if [ "$ARG_PREV" ]; then + + case $ARG_PREV in + -v) VERSION="$ARG" ;; + -r) REVISION="$ARG" ;; + -rs) REVISION_SVN="$ARG" ;; + -pr) REPOS_PATH="$ARG" ;; + -rc) RC="$ARG" ;; + -beta) BETA="$ARG" ;; + -alpha) ALPHA="$ARG" ;; + -d) RDATE="$ARG" ;; + *) ARG_PREV=$ARG ;; + esac + + ARG_PREV="" + + else + + case $ARG in + -v|-r|-rs|-pr|-beta|-rc|-alpha|-d) + ARG_PREV=$ARG + ;; + -win) + WIN=1 + ARG_PREV="" + ;; + *) + echo " $USAGE" + exit 1 + ;; + esac + fi +done + +if [ -z "$REVISION_SVN" ]; then + REVISION_SVN=$REVISION +fi + +if [ -n "$ALPHA" ] && [ -n "$BETA" ] || + [ -n "$ALPHA" ] && [ -n "$RC" ] || + [ -n "$BETA" ] && [ -n "$RC" ] ; then + echo " $USAGE" + exit 1 +elif [ -n "$ALPHA" ] ; then + VER_TAG="Alpha $ALPHA" + VER_NUMTAG="-alpha$ALPHA" +elif [ -n "$BETA" ] ; then + VER_TAG="Beta $BETA" + VER_NUMTAG="-beta$BETA" +elif [ -n "$RC" ] ; then + VER_TAG="Release Candidate $RC" + VER_NUMTAG="-rc$RC" +else + VER_TAG="r$REVISION_SVN" + VER_NUMTAG="-$REVISION" +fi + +case `uname` in + CYGWIN*) WIN=1;; +esac + +if [ -z "$VERSION" ] || [ -z "$REVISION" ] || [ -z "$RDATE" ]; then + echo " $USAGE" + exit 1 +fi + +LOWER='abcdefghijklmnopqrstuvwxyz' +UPPER='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +VER_UC=`echo $VERSION | sed -e "y/$LOWER/$UPPER/"` + +# format date string +RELEASE_DATE="`date -d $RDATE "+%B %e, %G"`" + +if [ -z "$REPOS_PATH" ]; then + REPOS_PATH="branches/$VERSION" +else + REPOS_PATH="`echo $REPOS_PATH | sed 's/^\/*//'`" +fi + +DISTNAME="IPhreeqc-${VERSION}${VER_NUMTAG}" +DIST_SANDBOX=.dist_sandbox +DISTPATH="$DIST_SANDBOX/$DISTNAME" + +echo "Distribution will be named: $DISTNAME" +echo " release branch's revision: $REVISION" +echo " executable's revision: $REVISION_SVN" +echo " constructed from path: /$REPOS_PATH" +echo " release date: $RELEASE_DATE" + +rm -rf "$DIST_SANDBOX" +mkdir "$DIST_SANDBOX" +echo "Removed and recreated $DIST_SANDBOX" + +echo "Exporting revision $REVISION of IPhreeqc into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/IPhreeqc/$REPOS_PATH" \ + "$DISTNAME") + +echo "Exporting revision $REVISION of external database into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/database" \ + "$DISTNAME/database") + +echo "Exporting revision $REVISION of external phreeqcpp into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqcpp/trunk/src" \ + "$DISTNAME/src/phreeqcpp") + +echo "Exporting revision $REVISION of external phreeqcpp/phreeqc into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/src" \ + "$DISTNAME/src/phreeqcpp/phreeqc") + +echo "Exporting revision $REVISION of external examples/c into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/c" \ + "$DISTNAME/examples/c") + +echo "Exporting revision $REVISION of external examples/com into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/com" \ + "$DISTNAME/examples/com") + +echo "Exporting revision $REVISION of external examples/fortran into sandbox..." +(cd "$DIST_SANDBOX" && \ + ${SVN:-svn} export -q $EXTRA_EXPORT_OPTIONS --ignore-externals -r "$REVISION" \ + "http://internalbrr.cr.usgs.gov/svn_GW/phreeqc/trunk/COMManuscript/C&Gfinal/examples/fortran" \ + "$DISTNAME/examples/fortran") + +ver_major=`echo $VERSION | cut -d '.' -f 1` +ver_minor=`echo $VERSION | cut -d '.' -f 2` +ver_patch=`echo $VERSION | cut -d '.' -f 3` + +if [ -z "$ver_patch" ]; then + ver_patch="0" +fi + +VERSION_LONG="$ver_major.$ver_minor.$ver_patch.$REVISION_SVN" + +SED_FILES="$DISTPATH/configure.ac" +for vsn_file in $SED_FILES +do + sed \ + -e "s/AC_INIT(.*)/AC_INIT([IPhreeqc], [$VERSION-$REVISION], [charlton@usgs.gov])/g" \ + < "$vsn_file" > "$vsn_file.tmp" + mv -f "$vsn_file.tmp" "$vsn_file" + if [ -n "$WIN" ]; then + unix2dos "$vsn_file" + fi + cp "$vsn_file" "$vsn_file.dist" +done + +(cd "$DISTPATH/doc" && doxygen) + +echo "Rolling $DISTNAME.tar ..." +(cd "$DIST_SANDBOX" > /dev/null && tar c "$DISTNAME") > \ +"$DISTNAME.tar" + +echo "Compressing to $DISTNAME.tar.gz ..." +gzip -9f "$DISTNAME.tar" +echo "Removing sandbox..." +rm -rf "$DIST_SANDBOX" + +echo "" +echo "Done:" +ls -l "$DISTNAME.tar.gz" +echo "" +echo "md5sums:" +md5sum "$DISTNAME.tar.gz" +type sha1sum > /dev/null 2>&1 +if [ $? -eq 0 ]; then + echo "" + echo "sha1sums:" + sha1sum "$DISTNAME.tar.gz" +fi