From 4bed397fbc25227f6323c977f2e9f34153aab0d6 Mon Sep 17 00:00:00 2001 From: Viktor Tarasov Date: Tue, 29 Apr 2014 16:56:15 +0200 Subject: [PATCH] build: return to standard use of 'autoconf' Following http://sourceforge.net/p/opensc/mailman/message/32009859/ * 'configure.ac' is not mored created by bootstrap script, but present in source * 'version.m4' is introduced and contains the 'volatile' package settings: settings that can be changed for the needs of particular build (ex. change PACKAGE_SUFFIX using the Git 'describe' or 'commit' data) * 'bootstrap' script facilitate change of the package setting during the 'autoconf' phase --- bootstrap | 25 +++++++++++----------- configure.ac.in => configure.ac | 37 +++++++++++++++++++++++++++------ version.m4 | 11 ++++++++++ 3 files changed, 54 insertions(+), 19 deletions(-) rename configure.ac.in => configure.ac (93%) create mode 100644 version.m4 diff --git a/bootstrap b/bootstrap index c7a0dc42..3656854b 100755 --- a/bootstrap +++ b/bootstrap @@ -9,7 +9,7 @@ OpenSC bootstrap OPTIONS: -h Show this message -s Package suffix - -S Use package suffix as 'git' appended with the date of last commit + -S Use package suffix as 'g' appended with the date of last commit -r Package version revision -R Use package version revision as Git commit number from 'git describe' result -b Package branch @@ -32,7 +32,7 @@ do SUFFIX=$OPTARG ;; S) - SUFFIX=git`git log -1 --pretty=fuller --date=iso | grep CommitDate: | sed -E 's/^CommitDate:\s(.*)/\1/' | sed -E 's/(.*)-(.*)-(.*) (.*):(.*):(.*)\s+.*/\1\2\3\4\5\6/'` + SUFFIX=g`git log -1 --pretty=fuller --date=iso | grep CommitDate: | sed -E 's/^CommitDate:\s(.*)/\1/' | sed -E 's/(.*)-(.*)-(.*) (.*):(.*):(.*)\s+.*/\1\2\3\4\5\6/'` ;; r) REVISION=$OPTARG @@ -47,34 +47,33 @@ do esac done -if [ ! -f configure.ac ]; then - cp configure.ac.in configure.ac -fi - set -e set -x if [ -f Makefile ]; then make distclean fi -rm -rf *~ *.cache *.m4 config.guess config.log config.status config.sub depcomp ltmain.sh configure.ac +rm -rf *~ *.cache config.guess config.log config.status config.sub depcomp ltmain.sh -cp configure.ac.in configure.ac if [ -n "$SUFFIX" ] || [ -n "$REVISION" ] then + cp version.m4 version.m4.orig + if [ -n "$SUFFIX" ] then echo Set package suffix "$SUFFIX" - sed 's/^define(\[PACKAGE_SUFFIX\],\s*\[\([-~]*[0-9a-zA-Z]*\)\])$/define(\[PACKAGE_SUFFIX\], \['$SUFFIX'\])/g' configure.ac > configure.ac.next - mv configure.ac.next configure.ac + sed 's/^define(\[PACKAGE_SUFFIX\],\s*\[\([-~]*[0-9a-zA-Z]*\)\])$/define(\[PACKAGE_SUFFIX\], \['$SUFFIX'\])/g' version.m4.orig > version.m4 fi if [ -n "$REVISION" ] then echo Set package revision "$REVISION" - sed 's/^define(\[PACKAGE_VERSION_REVISION\],\s*\[\([-~]*[0-9a-zA-Z]*\)\])$/define(\[PACKAGE_VERSION_REVISION\], \['$REVISION'\])/g' configure.ac > configure.ac.next - mv configure.ac.next configure.ac + sed 's/^define(\[PACKAGE_VERSION_REVISION\],\s*\[\([-~]*[0-9a-zA-Z]*\)\])$/define(\[PACKAGE_VERSION_REVISION\], \['$REVISION'\])/g' version.m4.orig > version.m4 fi fi -autoreconf --verbose --install --force +autoreconf --verbose --install --force || true + +if [ -f version.m4.orig ]; then + mv version.m4.orig version.m4 +fi diff --git a/configure.ac.in b/configure.ac similarity index 93% rename from configure.ac.in rename to configure.ac index a54016b6..98e9fcee 100644 --- a/configure.ac.in +++ b/configure.ac @@ -2,13 +2,23 @@ dnl -*- mode: m4; -*- AC_PREREQ(2.60) +define([PRODUCT_NAME], [OpenSC]) +define([PRODUCT_TARNAME], [opensc]) +define([PRODUCT_BUGREPORT], [opensc-devel@lists.sourceforge.net]) define([PACKAGE_VERSION_MAJOR], [0]) define([PACKAGE_VERSION_MINOR], [13]) define([PACKAGE_VERSION_FIX], [0]) define([PACKAGE_SUFFIX], []) define([PACKAGE_VERSION_REVISION], [0]) -AC_INIT([opensc],[PACKAGE_VERSION_MAJOR.PACKAGE_VERSION_MINOR.PACKAGE_VERSION_FIX[]PACKAGE_SUFFIX]) +define([VS_FF_LEGAL_COPYRIGHT], [OpenSC Project]) +define([VS_FF_LEGAL_COMPANY_NAME], [OpenSC Project]) +define([VS_FF_COMMENTS], [Provided under the terms of the GNU Lesser General Public License (LGPLv2.1+).]) +define([VS_FF_PRODUCT_NAME], [OpenSC smartcard framework]) + +m4_include(version.m4) + +AC_INIT([PRODUCT_NAME],[PACKAGE_VERSION_MAJOR.PACKAGE_VERSION_MINOR.PACKAGE_VERSION_FIX[]PACKAGE_SUFFIX],[PRODUCT_BUGREPORT],[PRODUCT_TARNAME]) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -19,10 +29,10 @@ OPENSC_VERSION_MINOR="PACKAGE_VERSION_MINOR" OPENSC_VERSION_FIX="PACKAGE_VERSION_FIX" OPENSC_VERSION_REVISION="PACKAGE_VERSION_REVISION" -OPENSC_VS_FF_LEGAL_COPYRIGHT="OpenSC Project" -OPENSC_VS_FF_COMPANY_NAME="OpenSC Project" -OPENSC_VS_FF_COMMENTS="Provided under the terms of the GNU Lesser General Public License (LGPLv2.1+)." -OPENSC_VS_FF_PRODUCT_NAME="OpenSC smartcard framework" +OPENSC_VS_FF_LEGAL_COPYRIGHT="VS_FF_LEGAL_COPYRIGHT" +OPENSC_VS_FF_COMPANY_NAME="VS_FF_LEGAL_COMPANY_NAME" +OPENSC_VS_FF_COMMENTS="VS_FF_COMMENTS" +OPENSC_VS_FF_PRODUCT_NAME="VS_FF_PRODUCT_NAME" # LT Version numbers, remember to change them just *before* a release. # (Code changed: REVISION++) @@ -215,7 +225,7 @@ done if test "${reader_count}" != "x"; then AC_MSG_ERROR([Only one of --enable-pcsc, --enable-openct, --enable-ctapi can be specified!]) fi - + dnl Checks for programs. AC_PROG_CPP AC_PROG_INSTALL @@ -261,6 +271,15 @@ elif test "${xslstylesheetsdir}" != "no"; then fi AC_MSG_RESULT([${xslstylesheetsdir}]) +AC_MSG_CHECKING([git checkout]) +GIT_CHECKOUT="no" +if test -n "${GIT}" -a -d "${srcdir}/.git"; then + AC_DEFINE([HAVE_CONFIG_VERSION_H], [1], [extra version available in config-version.h]) + GIT_CHECKOUT="yes" +fi +AC_MSG_RESULT([${GIT_CHECKOUT}]) + + dnl C Compiler features AC_C_INLINE @@ -638,6 +657,7 @@ AM_CONDITIONAL([CYGWIN], [test "${CYGWIN}" = "yes"]) AM_CONDITIONAL([ENABLE_MINIDRIVER], [test "${enable_minidriver}" = "yes"]) AM_CONDITIONAL([ENABLE_SM], [test "${enable_sm}" = "yes"]) AM_CONDITIONAL([ENABLE_DNIE_UI], [test "${enable_dnie_ui}" = "yes"]) +AM_CONDITIONAL([GIT_CHECKOUT], [test "${GIT_CHECKOUT}" = "yes"]) if test "${enable_pedantic}" = "yes"; then enable_strict="yes"; @@ -698,6 +718,11 @@ Version: ${PACKAGE_VERSION} Version fix: ${OPENSC_VERSION_FIX} Version revision: ${OPENSC_VERSION_REVISION} +Copyright: ${OPENSC_VS_FF_LEGAL_COPYRIGHT} +Company: ${OPENSC_VS_FF_COMPANY_NAME} +Comments: ${OPENSC_VS_FF_COMMENTS} +Product name: ${OPENSC_VS_FF_PRODUCT_NAME} + User binaries: $(eval eval eval echo "${bindir}") Configuration files: $(eval eval eval echo "${sysconfdir}") XSL stylesheets: ${xslstylesheetsdir} diff --git a/version.m4 b/version.m4 new file mode 100644 index 00000000..f27b32fa --- /dev/null +++ b/version.m4 @@ -0,0 +1,11 @@ +dnl define the OpenVPN version +define([PRODUCT_NAME], [OpenSC]) +define([PRODUCT_TARNAME], [opensc]) +define([PRODUCT_BUGREPORT], [opensc-devel@lists.sourceforge.net]) +define([PACKAGE_SUFFIX], []) + +define([VS_FF_LEGAL_COPYRIGHT], [OpenSC Project]) +define([VS_FF_LEGAL_COMPANY_NAME], [OpenSC Project]) +define([VS_FF_COMMENTS], [Provided under the terms of the GNU Lesser General Public License (LGPLv2.1+).]) +define([VS_FF_PRODUCT_NAME], [OpenSC smartcard framework]) +