completely new, megacool build system step 1
This commit is contained in:
		
							
								
								
									
										239
									
								
								ax_init_standard_project.m4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										239
									
								
								ax_init_standard_project.m4
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,239 @@ | ||||
| ## @id $Id$ | ||||
|  | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| m4_define(x_least, m4_esyscmd_s( | ||||
|   LEAST="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout" | ||||
|   for path in . .. ../..; do | ||||
|     if svn info $path 2>&1 > /dev/null; then | ||||
|       LEAST=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') | ||||
|       (cd $path && svn2cl) | ||||
|       break; | ||||
|     fi | ||||
|   done | ||||
|   echo -n $LEAST | ||||
| )) | ||||
| m4_define(x_bugreport, m4_esyscmd_s( | ||||
|   head -1 AUTHORS | \ | ||||
|     sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp' | ||||
| )) | ||||
|  | ||||
| m4_include(ax_check_qt.m4) | ||||
|  | ||||
| AC_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR]) | ||||
| AC_DEFUN([AX_DEFINE_DIR], [ | ||||
|   prefix_NONE= | ||||
|   exec_prefix_NONE= | ||||
|   test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix | ||||
|   test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix | ||||
| dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn | ||||
| dnl refers to ${prefix}.  Thus we have to use `eval' twice. | ||||
|   eval ax_define_dir="\"[$]$2\"" | ||||
|   eval ax_define_dir="\"$ax_define_dir\"" | ||||
|   AC_SUBST($1, "$ax_define_dir") | ||||
|   AC_DEFINE_UNQUOTED($1, "$ax_define_dir", [$3]) | ||||
|   test "$prefix_NONE" && prefix=NONE | ||||
|   test "$exec_prefix_NONE" && exec_prefix=NONE | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [ | ||||
|   sh_add_makefile_target_dep() { | ||||
|     sed -i ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${3}" | ||||
|     if ! egrep -q "${1}:.* ${2}" "${3}"; then | ||||
|         echo "${1}: ${2}" >> "${3}" | ||||
|     fi | ||||
|   } | ||||
|   sh_add_makefile_target_dep "$1" "$2" "$3" | ||||
|   if test "$1" != ".PHONY"; then | ||||
|       sh_add_makefile_target_dep ".PHONY" "$2" "$3" | ||||
|   fi | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ | ||||
|   AC_SUBST(HOME) | ||||
|   README=$(tail -n +3 README) | ||||
|   DESCRIPTION=$(head -1 README) | ||||
|   AUTHOR=$(head -1 AUTHORS) | ||||
|   AC_SUBST(AUTHOR) | ||||
|   _AM_SUBST_NOTMAKE([AUTHOR]) | ||||
|   AC_SUBST(DESCRIPTION) | ||||
|   _AM_SUBST_NOTMAKE([DESCRIPTION]) | ||||
|   AC_SUBST(README) | ||||
|   _AM_SUBST_NOTMAKE([README]) | ||||
|   DISTRO=$(lsb_release -sc) | ||||
|   AC_SUBST(DISTRO) | ||||
|   BUILD_NUMBER=${BUILD_NUMBER:-1} | ||||
|   AC_SUBST(BUILD_NUMBER) | ||||
|   BUILD_DATE=$(date -R) | ||||
|   AC_SUBST(BUILD_DATE) | ||||
|   AC_CONFIG_FILES([makefile]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-standard-project-targets], [makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-standard-project-targets], [makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-standard-project-targets], [makefile.in]) | ||||
|   test -f makefile.in && cat >> makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| EXTRA_DIST = bootstrap.sh | ||||
| doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog @PACKAGE_NAME@.spec | ||||
| clean-standard-project-targets: | ||||
| 	-rm -rf \${PACKAGE_NAME}-\${PACKAGE_VERSION} | ||||
| 	-rm \${PACKAGE_TARNAME}-\${PACKAGE_VERSION}.tar.gz | ||||
| distclean-standard-project-targets: | ||||
| 	-rm -r autom4te.cache | ||||
| 	-rm aclocal.m4 config.guess config.sub configure depcomp compile install-sh ltmain.sh makefile missing mkinstalldirs | ||||
| maintainer-clean-standard-project-targets: | ||||
| 	-rm makefile.in | ||||
| #### End: $0 | ||||
| EOF | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_CXX], [ | ||||
|   m4_include(ax_cxx_compile_stdcxx_11.m4) | ||||
|   AC_LANG(C++) | ||||
|   AX_CXX_COMPILE_STDCXX_11(noext, optional) | ||||
|   AC_PROG_CXX | ||||
|   AC_PROG_CPP | ||||
|  | ||||
|   AC_CONFIG_FILES([src/makefile]) | ||||
|    | ||||
|   AM_CPPFLAGS="-DPACKAGE_VERSION='\"${PACKAGE_VERSION}\"' -DPACKAGE_NAME='\"${PACKAGE_NAME}\"'" | ||||
|  | ||||
|   # Get rid of that stupid -O2 -g opions! | ||||
|   CXXFLAGS="${CXXFLAGS:-}" | ||||
|  | ||||
| # pass compile flags to make distcheck | ||||
|   AM_DISTCHECK_CONFIGURE_FLAGS="CXXFLAGS='${CXXFLAGS}' CPPFLAGS='${CPPFLAGS}' CFLAGS='${CFLAGS}' LDFLAGS='${LDFLAGS}'" | ||||
|   AC_SUBST(AM_DISTCHECK_CONFIGURE_FLAGS) | ||||
|  | ||||
|   AC_ARG_ENABLE(pedantic, | ||||
|     [AS_HELP_STRING([--enable-pedantic], | ||||
|                     [enable all warnings and checks, abort on warnings])], | ||||
|     [have_pedantic="$enableval"; test "$enableval" = "yes" &&  \ | ||||
|        AM_CXXFLAGS="${AM_CXXFLAGS:-} -pedantic-errors -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-format-attribute -Wno-multichar -Wpacked -Wredundant-decls -Werror -Wshadow -Wcast-qual -Wno-ctor-dtor-privacy"]) | ||||
|   dnl problem in libs: -Wshadow -Wcast-qual | ||||
|   dnl auto.hpp: -Wno-ctor-dtor-privacy (removed) | ||||
|   AM_CONDITIONAL(PEDANTIC, test "$enableval" = "yes") | ||||
|   if test "$have_pedantic" == "yes"; then | ||||
|     AC_MSG_NOTICE([Pedantic compile mode enabled! | ||||
|      - all warnings for GNU g++ are enabled | ||||
|      - all warnings result in an error | ||||
|      - doxygen warnings are treated as error too]); fi | ||||
|  | ||||
|   MINGW32=no | ||||
|   MAC=no | ||||
|   case $host_os in | ||||
|     *mingw32*) MINGW32=yes;; | ||||
|     *darwin* | *rhapsody* | *macosx*) MAC=yes;; | ||||
|   esac | ||||
|   AM_CONDITIONAL(MINGW32, test "$MINGW32" = "yes") | ||||
|   AM_CONDITIONAL(MAC, test "$MAC" = "yes") | ||||
|    | ||||
|   AC_SUBST(AM_CXXFLAGS) | ||||
|   AC_SUBST(AM_CPPFLAGS) | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_CPPUNIT], [ | ||||
|   AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"]) | ||||
|   # infos and warnings | ||||
|   if test "$have_cppunit" = "no"; then | ||||
|     AC_MSG_WARN([Missing cppunit development library! | ||||
|      - you cannot check the library using "make check" | ||||
|      - everything else works perfectly]); fi | ||||
|   AC_CONFIG_FILES([test/makefile]) | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_BUILD_EXAMPLES], [ | ||||
|   AC_CONFIG_FILES([examples/makefile]) | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_LIBTOOL], [ | ||||
|   # libtool versioning | ||||
|   LIB_MAJOR=m4_eval(x_major+x_minor) | ||||
|   LIB_MINOR=x_least | ||||
|   LIB_LEAST=x_minor | ||||
|   LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}" | ||||
|   AM_LDFLAGS = -version-info ${LIB_VERSION} | ||||
|   AC_SUBST(AM_LDFLAGS) | ||||
|   AC_SUBST(LIB_VERSION) | ||||
|   AC_PROG_LIBTOOL | ||||
|   AC_CONFIG_FILES([src/${PACKAGE_NAME}.pc]) | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_DEBIAN_PACKAGING], [ | ||||
|   README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g') | ||||
|   AC_SUBST(README_DEB) | ||||
|   _AM_SUBST_NOTMAKE([README_DEB]) | ||||
|   AC_CONFIG_FILES([debian/changelog debian/control]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-debian-targets], [makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-debian-targets], [makefile.in]) | ||||
|   test -f makefile.in && cat >> makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| EXTRA_DIST += debian | ||||
| clean-debian-targets: | ||||
| 	-rm -rf \${PACKAGE_NAME}_\${PACKAGE_VERSION}~\${DISTRO}.\${BUILD_NUMBER}.{dsc,tar.gz} \${PACKAGE_NAME}_\${PACKAGE_VERSION}~\${DISTRO}.\${BUILD_NUMBER}*.changes \$\$(sed -n 's,Package: \(.*\),\1_${PACKAGE_VERSION}~${DISTRO}.${BUILD_NUMBER}*.deb,p;' debian/control) | ||||
| deb: distdir | ||||
| 	cd \${PACKAGE_NAME}-\${PACKAGE_VERSION} && ( export CFLAGS="\${CFLAGS}"; export CPPFLAGS="\${CPPFLAGS}"; export  CXXFLAGS="\${CXXFLAGS}"; export LDFLAGS="\${LDFLAGS}"; export DEB_CFLAGS_APPEND="\${CFLAGS}"; export DEB_CPPFLAGS_APPEND="\${CPPFLAGS}"; export  DEB_CXXFLAGS_APPEND="\${CXXFLAGS}"; export  DEB_LDFLAGS_APPEND="\${LDFLAGS}"; dpkg-buildpackage ) | ||||
| distclean-debian-targets: | ||||
| 	-rm debian/changelog debian/control | ||||
| #### End: $0 | ||||
| EOF | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_RPM_PACKAGING], [ | ||||
| #  m4_include(ax_rpm_rules.m4) | ||||
|   AC_CONFIG_FILES([${PACKAGE_NAME}.spec]) | ||||
|   #AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-debian-targets], [makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([.PHONY], [rpm], [makefile.in]) | ||||
|   test -f makefile.in && cat >> makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| rpm: dist | ||||
| 	rpmbuild -ba --define "_topdir \$(pwd)" --define "_sourcedir \$(pwd)" \${PACKAGE_NAME}.spec | ||||
| #### End: $0 | ||||
| EOF | ||||
| ]) | ||||
|  | ||||
| AC_DEFUN([AX_USE_DOXYGEN], [ | ||||
|   AC_CHECK_PROG(have_doxygen, doxygen, yes, no) | ||||
|   AC_CHECK_PROG(have_dot, dot, yes, no) | ||||
|   AC_CHECK_PROG(have_mscgen, mscgen, yes, no) | ||||
|   if test "$have_doxygen" = "no"; then | ||||
|     AC_MSG_WARN([Missing program doxygen! | ||||
|      - you cannot rebuild the documentation | ||||
|      - there are precompiled derived files in the distribution]); fi | ||||
|   if test "$have_dot" = "no"; then | ||||
|     AC_MSG_WARN([Missing program dot! | ||||
|      - when you rebild documentation, there are no generated images | ||||
|      - there are precompiled derived files in the distribution]); fi | ||||
|   if test "$have_mscgen" = "no"; then | ||||
|     AC_MSG_WARN([Missing program mscgen! | ||||
|      - when you rebild documentation, there are no message state charts | ||||
|      - there are precompiled derived files in the distribution]); fi | ||||
|   AC_CONFIG_FILES([doc/makefile doc/doxyfile]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([clean-am], [clean-documentation], [doc/makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([distclean-am], [distclean-documentation], [doc/makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-documentation], [doc/makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([install-data-am], [install-data-documentation], [doc/makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([uninstall-am], [uninstall-documentation], [doc/makefile.in]) | ||||
|   AX_ADD_MAKEFILE_TARGET_DEP([all], [doc], [doc/makefile.in]) | ||||
|   test -f doc/makefile.in && cat >> doc/makefile.in <<EOF | ||||
| #### Begin: Appended by $0 | ||||
| doc: doxyfile | ||||
| 	doxygen doxyfile | ||||
| @PEDANTIC_TRUE@	test \! -s doxygen.errors | ||||
| clean-documentation: | ||||
| 	-rm doxygen.errors @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf | ||||
| distclean-documentation: | ||||
| 	-rm -r html | ||||
| 	-rm  @PACKAGE_NAME@.doxytag | ||||
| maintainer-clean-documentation: | ||||
| 	-rm makefile.in | ||||
| install-data-documentation: | ||||
| 	test -d \$(DESTDIR)\${docdir} || mkdir -p \$(DESTDIR)\${docdir} | ||||
| 	chmod -R u+w \$(DESTDIR)\${docdir} | ||||
| 	cp -r html \$(DESTDIR)\${docdir}/ | ||||
| uninstall-documentation: | ||||
| 	-chmod -R u+w \$(DESTDIR)\${docdir} | ||||
| 	-rm -rf \$(DESTDIR)\${docdir}/* | ||||
| #### End: $0 | ||||
| EOF | ||||
| ]) | ||||
							
								
								
									
										101
									
								
								bootstrap.sh
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								bootstrap.sh
									
									
									
									
									
								
							| @@ -1,5 +1,4 @@ | ||||
| #! /bin/sh | ||||
|  | ||||
| #! /bin/bash | ||||
| ## @file | ||||
| ## | ||||
| ## $Id$ | ||||
| @@ -15,5 +14,99 @@ | ||||
| ## added file header | ||||
| ## | ||||
|  | ||||
| test -f makefile && make distclean | ||||
| aclocal && libtoolize --force && automake -a && autoconf | ||||
| MY_NAME=${0##*/} | ||||
| PROJECT_PATH=${0%*/*} | ||||
| DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/} | ||||
|  | ||||
| HEADER='## @id $Id$ | ||||
| # | ||||
| # This file has been added by '${MY_NAME}' on '$(date -R)' | ||||
| # Feel free to change it or even remove and rebuild it, up to your needs | ||||
| # | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| ' | ||||
|  | ||||
| function run { | ||||
|     check=1 | ||||
|     while test $# -gt 0; do | ||||
|         case "$1" in | ||||
|             (--no-check) check=0;; | ||||
|             (*) break;; | ||||
|         esac | ||||
|         shift; | ||||
|     done | ||||
|     echo -n "-> running: $* ..." | ||||
|     result=$($* 2>&1) | ||||
|     res=$? | ||||
|     if test $res -ne 0; then | ||||
|         if test $check -eq 1; then | ||||
|             echo " error" | ||||
|             echo "*** Failed with return code: $res" | ||||
|             if test -n "$result"; then | ||||
|                 echo "$result" | ||||
|             fi | ||||
|             exit 1 | ||||
|         else | ||||
|             echo " ignored" | ||||
|         fi | ||||
|     else | ||||
|         echo " success" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function to { | ||||
|     cat > "$1" | ||||
|     run svn add "$1" | ||||
|     run svn propset svn:keywords "Id" "$1" | ||||
| } | ||||
|  | ||||
| # Initialize the environment: | ||||
| if ! test -f configure.ac; then | ||||
|     echo "->generating configure.ac" | ||||
|     to configure.ac <<EOF | ||||
| ${HEADER}m4_define(x_package_name, ${DEFAULT_PROJECT_NAME}) # project's name | ||||
| m4_define(x_major, 0) # project's major version | ||||
| m4_define(x_minor, 0) # project's minor version | ||||
| m4_include(ax_init_standard_project.m4) | ||||
| AC_INIT(x_package_name, x_major.x_minor.x_least, x_bugreport, x_package_name) | ||||
| AM_INIT_AUTOMAKE([1.9 tar-pax]) | ||||
| AX_INIT_STANDARD_PROJECT | ||||
|  | ||||
| # requirements, uncomment, what you need: | ||||
| #AX_USE_CXX | ||||
| #AX_USE_LIBTOOL | ||||
| #AX_USE_DOXYGEN | ||||
| #AX_USE_DEBIAN_PACKAGING | ||||
| #AX_USE_RPM_PACKAGING | ||||
| #AX_USE_CPPUNIT | ||||
| #AX_BUILD_EXAMPLES | ||||
|  | ||||
| # create output | ||||
| AC_OUTPUT | ||||
| EOF | ||||
|     echo "please edit configure.ac, then rerun $0" | ||||
| fi | ||||
| if ! test -f makefile.am; then | ||||
|     echo "-> generating makefile.am" | ||||
|     SUBDIRS="" | ||||
|     for d in src test doc examples; do | ||||
|         test -d $d && SUBDIRS="${SUBDIRS} $d" | ||||
|     done | ||||
|     echo "${HEADER}SUBDIRS =${SUBDIRS}" | to makefile.am | ||||
| fi | ||||
| if ( test -d doc || grep -q AX_USE_DOXYGEN configure.ac ) \ | ||||
|     && ! test -f doc/makefile.am; then | ||||
|     echo "-> generating doc/makefile.am" | ||||
|     test -d doc || ( mkdir doc && svn add doc ) | ||||
|     echo "${HEADER}" | to doc/makefile.am | ||||
| fi | ||||
|  | ||||
| if test -f makefile; then | ||||
|     run --no-check make distclean | ||||
| fi | ||||
| run aclocal | ||||
| run libtoolize --force | ||||
| run automake -a | ||||
| run autoconf | ||||
|   | ||||
							
								
								
									
										172
									
								
								configure.ac
									
									
									
									
									
								
							
							
						
						
									
										172
									
								
								configure.ac
									
									
									
									
									
								
							| @@ -1,93 +1,29 @@ | ||||
| # $Id$ | ||||
| AC_CONFIG_MACRO_DIR([m4]) | ||||
|  | ||||
| # prevent HAVE_QTxxx does not appear in AM_CONDITIONAL | ||||
| # in old ubuntu / debian distros | ||||
| m4_include(m4/ax_check_qt.m4) | ||||
| m4_include(m4/ax_cxx_compile_stdcxx_11.m4) | ||||
|  | ||||
| m4_define(x_package_name, libpcscxx) | ||||
| m4_define(x_major, 3) | ||||
| m4_define(x_minor, 1) | ||||
|  | ||||
| AC_ALIAS([AC_DEFINE_DIR], [AX_DEFINE_DIR]) | ||||
| AC_DEFUN([AX_DEFINE_DIR], [ | ||||
|   prefix_NONE= | ||||
|   exec_prefix_NONE= | ||||
|   test "x$prefix" = xNONE && prefix_NONE=yes && prefix=$ac_default_prefix | ||||
|   test "x$exec_prefix" = xNONE && exec_prefix_NONE=yes && exec_prefix=$prefix | ||||
| dnl In Autoconf 2.60, ${datadir} refers to ${datarootdir}, which in turn | ||||
| dnl refers to ${prefix}.  Thus we have to use `eval' twice. | ||||
|   eval ax_define_dir="\"[$]$2\"" | ||||
|   eval ax_define_dir="\"$ax_define_dir\"" | ||||
|   AC_SUBST($1, "$ax_define_dir") | ||||
|   AC_DEFINE_UNQUOTED($1, "$ax_define_dir", [$3]) | ||||
|   test "$prefix_NONE" && prefix=NONE | ||||
|   test "$exec_prefix_NONE" && exec_prefix=NONE | ||||
| ]) | ||||
|  | ||||
| m4_define(x_least, m4_esyscmd_s( | ||||
|   LEAST="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-svn-checkout" | ||||
|   for path in . .. ../..; do | ||||
|     if svn info $path 2>&1 > /dev/null; then | ||||
|       LEAST=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') | ||||
|       (cd $path && svn2cl) | ||||
|       break; | ||||
|     fi | ||||
|   done | ||||
|   echo -n $LEAST | ||||
| )) | ||||
| m4_define(x_bugreport, m4_esyscmd_s( | ||||
|   head -1 AUTHORS | \ | ||||
|     sed -n 's,.*<\([-_.a-z0-9A-Z]*@[-_.a-z0-9A-Z]*\)>.*,\1,gp' | ||||
| )) | ||||
| m4_include(ax_init_standard_project.m4) | ||||
| AC_INIT(x_package_name, x_major.x_minor.x_least, x_bugreport, x_package_name) | ||||
|  | ||||
| AM_INIT_AUTOMAKE([1.9 tar-pax]) | ||||
|  | ||||
| SRC_DIR=src | ||||
| TST_DIR= | ||||
| DOC_DIR=doc | ||||
|  | ||||
| # files to create | ||||
| AC_CONFIG_FILES([makefile ${PACKAGE_NAME}.spec | ||||
|                  src/makefile | ||||
|                  doc/doxyfile doc/examples/makefile doc/makefile | ||||
|                  src/${PACKAGE_NAME}.pc debian/changelog debian/control]) | ||||
|  | ||||
| # libtool versioning | ||||
| LIB_MAJOR=m4_eval(x_major+x_minor) | ||||
| LIB_MINOR=x_least | ||||
| LIB_LEAST=x_minor | ||||
| LIB_VERSION="${LIB_MAJOR}:${LIB_MINOR}:${LIB_LEAST}" | ||||
| AC_SUBST(LIB_VERSION) | ||||
|  | ||||
| # home | ||||
| AC_SUBST(HOME) | ||||
|  | ||||
| # datadir for languages | ||||
| AX_DEFINE_DIR([DATADIR], [datadir]) | ||||
| #AC_SUBST(DATADIR) | ||||
|  | ||||
| AM_CPPFLAGS="-DPACKAGE_VERSION='\"${PACKAGE_VERSION}\"' -DPACKAGE_NAME='\"${PACKAGE_NAME}\"'" | ||||
|  | ||||
| # Get rid of that stupid -O2 -g opions! | ||||
| CXXFLAGS="${CXXFLAGS:-}" | ||||
| AX_INIT_STANDARD_PROJECT | ||||
|  | ||||
| # languages | ||||
| AC_LANG(C++) | ||||
| AX_CXX_COMPILE_STDCXX_11(noext, optional) | ||||
| AX_USE_CXX | ||||
| AX_USE_LIBTOOL | ||||
| AX_USE_DOXYGEN | ||||
| AX_USE_DEBIAN_PACKAGING | ||||
| AX_USE_RPM_PACKAGING | ||||
| #AX_USE_CPPUNIT | ||||
| AX_BUILD_EXAMPLES | ||||
|  | ||||
| # qt features | ||||
| AX_CXX_CHECK_QT([QTGUI], [QtCore QtGui]) | ||||
| AX_CXX_CHECK_QT([QTWIDGETS], [QtWidgets]) # optional, needed only for qt5 | ||||
| AX_CXX_CHECK_QT([QTNETWORK], [QtNetwork]) | ||||
|  | ||||
| # programs | ||||
| AC_PROG_CXX | ||||
| AC_PROG_CPP | ||||
| AC_PROG_INSTALL | ||||
| AC_PROG_LN_S | ||||
| AC_PROG_MAKE_SET | ||||
| AC_PROG_LIBTOOL | ||||
| AC_CHECK_PROG(have_doxygen, doxygen, yes, no) | ||||
| AC_CHECK_PROG(have_dot, dot, yes, no) | ||||
| PKG_PROG_PKG_CONFIG | ||||
| #PKG_PROG_PKG_CONFIG | ||||
|  | ||||
| # libraries | ||||
| AC_ARG_ENABLE(pkcs11-download, | ||||
| @@ -109,84 +45,6 @@ dnl auto.hpp: -Wno-ctor-dtor-privacy (removed) | ||||
| AC_CHECK_HEADER([pkcs11.h], [], [AC_MSG_ERROR([Header pkcs11.h is required])]) | ||||
| AC_CHECK_HEADER([wintypes.h], [], [AC_MSG_ERROR([Header wintypes.h is required])]) | ||||
| AC_CHECK_HEADER([mrw/checkcxx11.hxx], [], [AC_MSG_ERROR([please install mrw-c++])]) | ||||
| AX_CXX_CHECK_QT([QTGUI], [QtCore QtGui]) | ||||
| AX_CXX_CHECK_QT([QTWIDGETS], [QtWidgets]) # optional, needed only for qt5 | ||||
| AX_CXX_CHECK_QT([QTNETWORK], [QtNetwork]) | ||||
|  | ||||
| AC_ARG_ENABLE(pedantic, | ||||
|   [AS_HELP_STRING([--enable-pedantic], | ||||
|                   [enable all warnings and checks, abort on warnings])], | ||||
|   [have_pedantic="$enableval"; test "$enableval" = "yes" &&  \ | ||||
|      AM_CXXFLAGS="${AM_CXXFLAGS:-} -pedantic-errors -Wall -W -Wfloat-equal -Wundef -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Wmissing-format-attribute -Wno-multichar -Wpacked -Wredundant-decls -Werror -Wshadow -Wcast-qual -Wno-ctor-dtor-privacy"]) | ||||
| dnl problem in libs: -Wshadow -Wcast-qual | ||||
| dnl auto.hpp: -Wno-ctor-dtor-privacy (removed) | ||||
| AM_CONDITIONAL(PEDANTIC, test "$enableval" = "yes") | ||||
| AC_ARG_ENABLE(dot, | ||||
|   [AS_HELP_STRING([--disable-dot], | ||||
|                   [disable dot graphic tools for documentation])], | ||||
|   [have_dot="$enableval"]) | ||||
| test "$enableval" = "yes" && HAVE_DOT="YES" || HAVE_DOT="NO"; | ||||
| AM_PATH_CPPUNIT([1.0.0], [have_cppunit="yes"], [have_cppunit="no"]) | ||||
|  | ||||
| MINGW32=no | ||||
| MAC=no | ||||
| case $host_os in | ||||
|   *mingw32*) MINGW32=yes;; | ||||
|   *darwin* | *rhapsody* | *macosx*) MAC=yes;; | ||||
| esac | ||||
| AM_CONDITIONAL(MINGW32, test "$MINGW32" = "yes") | ||||
| AM_CONDITIONAL(MAC, test "$MAC" = "yes") | ||||
|  | ||||
| # macros | ||||
| README=$(tail -n +3 README) | ||||
| README_DEB=$(tail -n +3 README | sed -e 's/^$/./g' -e 's/^/ /g') | ||||
| DESCRIPTION=$(head -1 README) | ||||
| AUTHOR=$(head -1 AUTHORS) | ||||
| AC_SUBST(AUTHOR) | ||||
| _AM_SUBST_NOTMAKE([AUTHOR]) | ||||
| AC_SUBST(DESCRIPTION) | ||||
| _AM_SUBST_NOTMAKE([DESCRIPTION]) | ||||
| AC_SUBST(README) | ||||
| _AM_SUBST_NOTMAKE([README]) | ||||
| AC_SUBST(README_DEB) | ||||
| _AM_SUBST_NOTMAKE([README_DEB]) | ||||
| DISTRO=$(lsb_release -sc) | ||||
| AC_SUBST(DISTRO) | ||||
| BUILD_NUMBER=${BUILD_NUMBER:-1} | ||||
| AC_SUBST(BUILD_NUMBER) | ||||
| BUILD_DATE=$(date -R) | ||||
| AC_SUBST(BUILD_DATE) | ||||
|  | ||||
| # export macros | ||||
| SRCDIR=${srcdir} | ||||
| AC_SUBST(SRCDIR) | ||||
| AC_SUBST(SRC_DIR) | ||||
| AC_SUBST(TST_DIR) | ||||
| AC_SUBST(DOC_DIR) | ||||
| AC_SUBST(HAVE_DOT) | ||||
| AC_SUBST(THREADS) | ||||
| AC_SUBST(AM_CXXFLAGS) | ||||
| AC_SUBST(AM_CPPFLAGS) | ||||
| AC_SUBST(LIBS) | ||||
|  | ||||
| # create output | ||||
| AC_OUTPUT | ||||
|  | ||||
| # infos and warnings | ||||
| if test "$have_doxygen" = "no"; then | ||||
| AC_MSG_WARN([Missing program doxygen! | ||||
|   - you cannot rebuild the documentation with make doc | ||||
|   - there are precompiled derived files in the distribution]); fi | ||||
| if test "$have_dot" = "no"; then | ||||
| AC_MSG_WARN([Missing program dot! | ||||
|   - when you rebild documentation with make doc, there are no generated images | ||||
|   - there are precompiled derived files in the distribution]); fi | ||||
| if test "$have_cppunit" = "no"; then | ||||
| AC_MSG_WARN([Missing cppunit development library! | ||||
|   - you cannot check the library using "make check" | ||||
|   - everything else works perfectly]); fi | ||||
| if test "$have_pedantic" == "yes"; then | ||||
| AC_MSG_NOTICE([Pedantic compile mode enabled! | ||||
|   - all warnings for GNU g++ are enabled | ||||
|   - all warnings result in an error | ||||
|   - doxygen warnings are treated as error too]); fi | ||||
|   | ||||
							
								
								
									
										2
									
								
								debian/changelog.in
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								debian/changelog.in
									
									
									
									
										vendored
									
									
								
							| @@ -1,5 +1,5 @@ | ||||
| @PACKAGE@ (@PACKAGE_VERSION@~@DISTRO@.@BUILD_NUMBER@) @DISTRO@; urgency=low | ||||
|  | ||||
|   * See https://dev.marc.waeckerlin.org/projects/@PACKAGE@ for changes | ||||
|   * Please see ChangeLog of @PACKAGE@ | ||||
|  | ||||
|  -- @AUTHOR@  @BUILD_DATE@ | ||||
|   | ||||
| @@ -660,7 +660,7 @@ WARN_LOGFILE           = doxygen.errors | ||||
| # directories like "/usr/src/myproject". Separate the files or directories  | ||||
| # with spaces. | ||||
|  | ||||
| INPUT                  = @SRCDIR@/../src | ||||
| INPUT                  = @top_srcdir@/src | ||||
|  | ||||
| # This tag can be used to specify the character encoding of the source files  | ||||
| # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is  | ||||
| @@ -723,7 +723,7 @@ EXCLUDE_SYMBOLS        = | ||||
| # directories that contain example code fragments that are included (see  | ||||
| # the \include command). | ||||
|  | ||||
| EXAMPLE_PATH           = examples | ||||
| EXAMPLE_PATH           = @top_srcdir@/examples | ||||
|  | ||||
| # If the value of the EXAMPLE_PATH tag contains directories, you can use the  | ||||
| # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp  | ||||
| @@ -1220,7 +1220,7 @@ SERVER_BASED_SEARCH    = NO | ||||
| # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will  | ||||
| # generate Latex output. | ||||
|  | ||||
| GENERATE_LATEX         = YES | ||||
| GENERATE_LATEX         = NO | ||||
|  | ||||
| # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.  | ||||
| # If a relative path is entered the value of OUTPUT_DIRECTORY will be  | ||||
|   | ||||
| @@ -1,48 +1,9 @@ | ||||
| ## @file | ||||
| ## | ||||
| ## $Id$ | ||||
| ## | ||||
| ## @id $Id$ | ||||
| # | ||||
| # This file has been added by bootstrap.sh on Wed, 11 Mar 2015 16:57:43 +0100 | ||||
| # Feel free to change it or even remove and rebuild it, up to your needs | ||||
| # | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| SUBDIRS = examples | ||||
| ALL_SRC = ${top_srcdir}/src/*.[ch]xx ${top_srcdir}/src/*.doc | ||||
| # ${top_srcdir}/src/*.doc | ||||
|  | ||||
| DIRS = html | ||||
| #latex | ||||
|  | ||||
| all: ${DIRS} | ||||
|  | ||||
| .PHONY: doc clean-local distclean-local dist-hool install-data-hook \ | ||||
|         uninstall-hook | ||||
|  | ||||
| deps = ${top_srcdir}/COPYING ${top_srcdir}/README		 \ | ||||
|        ${top_srcdir}/INSTALL ${top_srcdir}/NEWS ${top_srcdir}/ChangeLog | ||||
|  | ||||
| html: ${ALL_SRC} doxyfile ${deps} | ||||
| 	doxygen doxyfile | ||||
| if PEDANTIC | ||||
| 	test \! -s doxygen.errors | ||||
| endif | ||||
| #	cd latex && make | ||||
| #	mv latex/refman.pdf @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf | ||||
|  | ||||
| CLEANFILES = doxygen.errors @PACKAGE_NAME@-@PACKAGE_VERSION@.pdf | ||||
| DISTCLEANFILES = @PACKAGE_NAME@.doxytag | ||||
| MAINTAINERCLEANFILES = makefile.in | ||||
|  | ||||
| distclean-local: | ||||
| 	- rm -r html latex | ||||
|  | ||||
| dist-hook: html | ||||
| #	cp -r html latex ${distdir}/ | ||||
|  | ||||
| install-data-hook: | ||||
| 	test -d $(DESTDIR)${docdir} || mkdir -p $(DESTDIR)${docdir} | ||||
| 	chmod -R u+w $(DESTDIR)${docdir} | ||||
| 	cp -r html $(DESTDIR)${docdir}/ | ||||
|  | ||||
| uninstall-hook: | ||||
| 	-chmod -R u+w $(DESTDIR)${docdir} | ||||
| 	-rm -rf $(DESTDIR)${docdir}/* | ||||
|   | ||||
							
								
								
									
										66
									
								
								makefile.am
									
									
									
									
									
								
							
							
						
						
									
										66
									
								
								makefile.am
									
									
									
									
									
								
							| @@ -1,63 +1,9 @@ | ||||
| ## @file | ||||
| ## | ||||
| ## $Id$ | ||||
| ## | ||||
| ## $Date: 2008-08-26 13:09:21 $ | ||||
| ## $Author: marc $ | ||||
| ## | ||||
| ## @copy © Marc Wäckerlin | ||||
| ## @license LGPL, see file <a href="license.html">COPYING</a> | ||||
| ## | ||||
| ## @id $Id$ | ||||
| # | ||||
| # This file has been added by bootstrap.sh on Wed, 11 Mar 2015 16:57:43 +0100 | ||||
| # Feel free to change it or even remove and rebuild it, up to your needs | ||||
| # | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| SUBDIRS = @SRC_DIR@ @TST_DIR@ @DOC_DIR@ | ||||
|  | ||||
| nobase_include_HEADERS = | ||||
|  | ||||
| EXTRA_DIST = bootstrap.sh debian | ||||
|  | ||||
| DISTCLEANFILES = debian/changelog | ||||
|  | ||||
| deb: dist | ||||
| 	tar xzvf @PACKAGE_TARNAME@-@VERSION@.tar.gz | ||||
| 	cd @PACKAGE_TARNAME@-@VERSION@ && dpkg-buildpackage | ||||
| 	rm -rf @PACKAGE_TARNAME@-@VERSION@  | ||||
|  | ||||
| doc_DATA = AUTHORS NEWS README COPYING INSTALL ChangeLog @PACKAGE_NAME@.spec | ||||
|  | ||||
| RPMS = /usr/src/packages/RPMS/i586/@PACKAGE_NAME@-@PACKAGE_VERSION@-1.i586.rpm \ | ||||
|      /usr/src/packages/RPMS/i586/@PACKAGE_NAME@-devel-@PACKAGE_VERSION@-1.i586.rpm \ | ||||
|      /usr/src/packages/SRPMS/@PACKAGE_NAME@-@PACKAGE_VERSION@-1.src.rpm | ||||
|  | ||||
| .PHONY: release tag rpm webserver \ | ||||
|         doc clean-local distclean-local dist-hool install-data-hook \ | ||||
|         uninstall-hook | ||||
|  | ||||
| release: tag webserver | ||||
|  | ||||
| rpm: dist | ||||
| 	cp @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz \ | ||||
| 	/usr/src/packages/SOURCES/ | ||||
| 	rpmbuild -ba --clean @PACKAGE_NAME@.spec | ||||
|  | ||||
| deps = ${top_srcdir}/COPYING ${top_srcdir}/README ${top_srcdir}/INSTALL ${top_srcdir}/NEWS ${top_srcdir}/ChangeLog | ||||
|  | ||||
| clean-local: | ||||
| 	- rm doxygen.err lib@PACKAGE_NAME@.doxytag | ||||
| 	- rm @PACKAGE_NAME@-dev_@PACKAGE_VERSION@-*.deb \ | ||||
| 	     @PACKAGE_NAME@_@PACKAGE_VERSION@-*.changes \ | ||||
| 	     @PACKAGE_NAME@_@PACKAGE_VERSION@-1.tar.gz \ | ||||
| 	     @PACKAGE_NAME@_@PACKAGE_VERSION@-1.dsc \ | ||||
| 	     @PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz \ | ||||
| 	     @PACKAGE_NAME@_@PACKAGE_VERSION@-*.deb | ||||
|  | ||||
| distclean-local: | ||||
| 	- rm -r ${top_builddir}/@DOC_DIR@/html/* ${top_builddir}/@DOC_DIR@/latex/* | ||||
| 	- rm makefile makefile.in doxygen.err libmrw.doxytag | ||||
| 	- find . -name '*~' | xargs rm | ||||
| 	- rm -r autom4te.cache | ||||
| 	- rm aclocal.m4 config.guess config.sub configure depcomp	\ | ||||
| 	     install-sh ltmain.sh makefile makefile.in missing		\ | ||||
| 	     mkinstalldirs m4/libtool.m4 m4/ltoptions.m4		\ | ||||
| 	     m4/ltsugar.m4 m4/ltversion.m4 m4/lt~obsolete.m4 compile | ||||
| SUBDIRS = src doc examples | ||||
|   | ||||
| @@ -5,10 +5,8 @@ | ||||
| ##       1         2         3         4         5         6         7         8 | ||||
| ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 | ||||
|  | ||||
| #MOC_FILES=moc_certimport.cxx | ||||
| include_HEADERS = pcsc.hxx cryptoki.hxx openssl.hxx cryptaux.hxx	\ | ||||
|                   openssl-engine.hxx suisseid.hxx cardos.hxx | ||||
| #certimport.hxx | ||||
|  | ||||
| noinst_HEADERS = cardgui.hxx cardgui-model.hxx | ||||
|  | ||||
| @@ -33,7 +31,6 @@ lib_LTLIBRARIES = libpcscxx.la | ||||
|  | ||||
| libpcscxx_la_SOURCES = cryptoki.cxx cryptoki.hxx pcsc.cxx version.cxx	\ | ||||
|                        openssl-engine.cxx | ||||
| #moc_certimport.cxx | ||||
| libpcscxx_la_LDFLAGS = -version-info ${LIB_VERSION} | ||||
| libpcscxx_la_LIBADD = -lssl -lcrypto | ||||
| if MINGW32 | ||||
| @@ -58,9 +55,6 @@ endif | ||||
| noinst_PROGRAMS = versiontest | ||||
| versiontest_SOURCES = versiontest.cxx | ||||
|  | ||||
| clean-local: | ||||
| 	-rm -r ${QMAKE_TARGET}.app | ||||
|  | ||||
| CLEANFILES = ${MOC_FILES} ${BUILT_SOURCES} | ||||
| CLEANFILES = ${BUILT_SOURCES} | ||||
| DISTCLEANFILES = $(pkgconfig_DATA) | ||||
| MAINTAINERCLEANFILES = makefile.in | ||||
|   | ||||
		Reference in New Issue
	
	Block a user