upgrade to newest bootstrap-build

master
Marc Wäckerlin 9 years ago
parent 3d3cbf41f4
commit 7c54da1e57
  1. 5
      ChangeLog
  2. 53
      ax_check_qt.m4
  3. 72
      ax_init_standard_project.m4
  4. 43
      bootstrap.sh

@ -1,3 +1,8 @@
2015-06-24 09:26 marc
* ChangeLog, ax_init_standard_project.m4: even more support for
weird and sloppy packages
2015-06-23 09:02 marc
* ax_init_standard_project.m4, configure.ac: even more improved way

@ -75,19 +75,19 @@ AC_DEFUN([AX_CXX_QT_TOOLS], [
AC_DEFUN([AX_CHECK_VALID_FLAG], [
AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])])
save_cxxflags="$CXXFLAGS"
save_cppflags="$CPPFLAGS"
newflag="no"
for test_flag in $1; do
CXXFLAGS+=" ${test_flag}"
CPPFLAGS+=" ${test_flag}"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [
newflag="$test_flag"
AM_CXXFLAGS+=" ${test_flag}"
CXXFLAGS="$save_cxxflags"
CPPFLAGS="$save_cppflags"
CPPFLAGS+=" ${test_flag}"
break;
])
CXXFLAGS="$save_cxxflags"
CPPFLAGS="$save_cppflags"
done
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(CPPFLAGS)
AC_MSG_RESULT([$newflag])
])
@ -100,16 +100,16 @@ AC_DEFUN([AX_CHECK_QT], [
PKG_CHECK_MODULES([$1]5, [${qt_modules//Qt/Qt5}], [
HAVE_$1=1
AC_DEFINE([HAVE_$1])
AM_CPPFLAGS+=" ${[$1]5_CFLAGS}"
CPPFLAGS+=" ${[$1]5_CFLAGS}"
MOC_FLAGS+=" -DHAVE_$1=1 ${[$1]5_CFLAGS}"
AM_CXXFLAGS+=" ${[$1]5_CFLAGS}"
CXXFLAGS+=" ${[$1]5_CFLAGS}"
LIBS+=" ${[$1]5_LIBS}"
PKG_REQUIREMENTS+=" ${qt_modules//Qt/Qt5}"
if test -n "${qt_modules_optional}"; then
PKG_CHECK_MODULES([$1]5_OPTIONAL, [${qt_modules_optional//Qt/Qt5}], [
AM_CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
CPPFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
MOC_FLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
AM_CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
CXXFLAGS+=" ${[$1]5_OPTIONAL_CFLAGS}"
LIBS+=" ${[$1]5_OPTIONAL_LIBS}"
PKG_REQUIREMENTS+=" ${qt_modules_optional//Qt/Qt5}"
], [
@ -120,16 +120,16 @@ AC_DEFUN([AX_CHECK_QT], [
PKG_CHECK_MODULES([$1], [${qt_modules}], [
HAVE_$1=1
AC_DEFINE([HAVE_$1])
AM_CPPFLAGS+=" ${$1_CFLAGS}"
CPPFLAGS+=" ${$1_CFLAGS}"
MOC_FLAGS+=" -DHAVE_$1=1 ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}"
CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}"
PKG_REQUIREMENTS+=" ${qt_modules}"
if test -n "$3"; then
PKG_CHECK_MODULES($1_OPTIONAL, [${qt_modules_optional}], [
AM_CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
CPPFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
MOC_FLAGS+=" ${$1_OPTIONAL_CFLAGS}"
AM_CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
CXXFLAGS+=" ${$1_OPTIONAL_CFLAGS}"
LIBS+=" ${$1_OPTIONAL_LIBS}"
PKG_REQUIREMENTS+=" ${qt_modules_optional}"
], [
@ -140,11 +140,14 @@ AC_DEFUN([AX_CHECK_QT], [
])
AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1)
AX_CHECK_VALID_FLAG([-fPIC -fPIE], [position independent code flag])
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(MOC_FLAGS)
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
AX_ADDITIONAL_QT_RULES_HACK='
LANGUAGE_FILE_BASE ?= translations
ui_%.hxx: %.ui
$(UIC) -o [$][@] $<
@ -152,9 +155,21 @@ moc_%.cxx: %.hxx
$(MOC) $(MOC_FLAGS) -o [$][@] $<
qrc_%.cxx: %.qrc
$(RCC) -o [$][@] $<'
$(RCC) -o [$][@] -name ${<:%.qrc=%} $<
AC_SUBST(AX_ADDITIONAL_QT_RULES_HACK)
])
#%.qrc: %
# cwd=$$(pwd) && cd $< && $(RCC) -project -o $${cwd}/[$][@]
%.qm: %.ts
${LRELEASE} $< -qm [$][@]
#%.ts: ${LANGUAGE_FILES}
# ${LUPDATE} -no-obsolete \
# -target-language ${@:${LANGUAGE_FILE_BASE}_%.ts=%} \
# -ts [$][@] $<
'])
# SYNOPSIS
#
@ -202,5 +217,5 @@ AC_DEFUN([AX_REQUIRE_QT], [
# AX_QT_NO_KEYWORDS
AC_DEFUN([AX_QT_NO_KEYWORDS], [
AM_CPPFLAGS+=" -DQT_NO_KEYWORDS"
CPPFLAGS+=" -DQT_NO_KEYWORDS"
])

@ -108,7 +108,7 @@ AC_DEFUN([AX_SUBST], [
#
# configures the basic environment
AC_DEFUN([AX_INIT_STANDARD_PROJECT], [
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_NAME}'"
AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_NAME//-/_}'"
AX_SUBST(NUMBERS)
AX_SUBST(HOME)
README=$(tail -n +3 README)
@ -239,6 +239,18 @@ maintainer-clean-example-targets:
EOF
])
# use this in configure.ac to support HTML data for webservers
AC_DEFUN([AX_BUILD_HTML], [
AC_CONFIG_FILES([html/makefile])
AX_ADD_MAKEFILE_TARGET_DEP([maintainer-clean-am], [maintainer-clean-example-targets], [html/makefile.in])
test -f html/makefile.in && cat >> examples/html.in <<EOF
#### Begin: Appended by $0
maintainer-clean-example-targets:
-rm makefile.in
#### End: $0
EOF
])
# use this in configure.ac to support C++ libraries
AC_DEFUN([AX_USE_LIBTOOL], [
# libtool versioning
@ -361,7 +373,7 @@ EOF
# require a specific package, with fallback: test for a header
# - parameter:
# $1 = unique id (no special characters)
# $2 = module name
# $2 = module name (optional, if different from id)
# $3 = a header file to find (optional)
# $4 = alternative module names (space separated, optional)
#
@ -373,12 +385,13 @@ EOF
AC_DEFUN([AX_PKG_REQUIRE], [
PKG_PROG_PKG_CONFIG
$1_found=no
PKG_CHECK_MODULES([$1], [$2], [
$1_found=$2
PKG_REQUIREMENTS+=" $2"
secondpar="m4_default([$2], [$1])"
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
$1_found=$secondpar
PKG_REQUIREMENTS+=" $secondpar"
], [
if test -n "$4"; then
AC_MSG_WARN([Recommended package $2 for feature $1 not installed, trying $4])
AC_MSG_WARN([Recommended package $secondpar for feature $1 not installed, trying $4])
for pkg in $4; do
PKG_CHECK_MODULES([$1], [$pkg], [
PKG_REQUIREMENTS+=" $pkg"
@ -390,8 +403,8 @@ AC_DEFUN([AX_PKG_REQUIRE], [
done
fi
])
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
if test -n "$3"; then
tmp_package=${$1_found}
@ -438,16 +451,16 @@ AC_DEFUN([AX_PKG_REQUIRE], [
if test "${$1_found}" = "no"; then
if test -n "$3"; then
if test -n "$4"; then
AC_MSG_ERROR([Feature $1 not found, need header $3 in modules $2 or $4])
AC_MSG_ERROR([Feature $1 not found, need header $3 in modules $secondpar or $4])
else
AC_MSG_ERROR([Feature $1 not found, need header $3 in module $2])
AC_MSG_ERROR([Feature $1 not found, need header $3 in module $secondpar])
fi
else
AC_MSG_ERROR([Feature $1 not found please install module $2])
AC_MSG_ERROR([Feature $1 not found please install module $secondpar])
fi
fi
AM_CPPFLAGS+=" ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}"
CPPFLAGS+=" ${$1_CFLAGS}"
CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}"
])
@ -463,8 +476,8 @@ AC_DEFUN([AX_PKG_CHECK], [
PKG_PROG_PKG_CONFIG
PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [
HAVE_$1=1
AM_CPPFLAGS+=" ${$1_CFLAGS}"
AM_CXXFLAGS+=" ${$1_CFLAGS}"
CPPFLAGS+=" ${$1_CFLAGS}"
CXXFLAGS+=" ${$1_CFLAGS}"
LIBS+=" ${$1_LIBS}"
if test -z "$PKG_REQUIREMENTS"; then
PKG_REQUIREMENTS="m4_default([$2], [$1])"
@ -476,7 +489,32 @@ AC_DEFUN([AX_PKG_CHECK], [
])
AM_CONDITIONAL(HAVE_$1, test $HAVE_$1 -eq 1)
AC_SUBST(HAVE_$1)
AC_SUBST(AM_CPPFLAGS)
AC_SUBST(AM_CXXFLAGS)
AC_SUBST(CPPFLAGS)
AC_SUBST(CXXFLAGS)
AC_SUBST(PKG_REQUIREMENTS)
])
# make sure, a specific header exists
# - parameter:
# $1 = header name
AC_DEFUN([AX_REQUIRE_HEADER], [
AC_CHECK_HEADER($1, [], [
if test -n "$2"; then
found=0
for d in $2; do
if test -f "${d}/$1"; then
AC_MSG_NOTICE([found file ${d}/$1])
CPPFLAGS+=" -I${d}"
found=1
break;
else
AC_MSG_NOTICE([not found file ${d}/$1])
fi
done
fi
if test $found -eq 0; then
AC_MSG_ERROR([Header $1 not found])
fi
], [])
], [])
])

@ -17,7 +17,6 @@
MY_NAME=${0##*/}
PROJECT_PATH=$(pwd)
DEFAULT_PROJECT_NAME=${PROJECT_PATH##*/}
configure=0
build=0
overwrite=0
@ -107,6 +106,7 @@ GENERATED FILES
* src/makefile.am - if you enabled AX_USE_CXX
* src/version.hxx - if you enabled AX_USE_CXX
* src/version.cxx - if you enabled AX_USE_CXX
* html/makefile.am - if you enabled AX_BUILD_HTML
* scripts/makefile.in - if you enabled AX_USE_SCRIPTS
* doc/makefile.am - if you enabled AX_USE_DOXYGEN
* doc/doxyfile.in - if you enabled AX_USE_DOXYGEN
@ -147,6 +147,7 @@ FILES TO EDIT
* README
* configure.ac
* src/makefile.am
* html/makefile.am
* test/makefile.am
* examples/makefile.am
@ -156,6 +157,7 @@ FILE DEPENDENCIES
configuration a dependent, i.e.:
* test/makefile.am depends on AX_USE_LIBTOOL
* html/makefile.am depends on AX_BUILD_HTML
* doc/doxyfile.in depends on AX_BUILD_EXAMPLES
* debian/control.in depends on AX_USE_DOXYGEN, AX_USE_CPPUNIT,
AX_CXX_QT, AX_CXX_CHECK_QT, AX_USE_LIBTOOL
@ -233,6 +235,10 @@ HEADER='## @id '"\$Id\$"'
'
notice() {
echo -e "\e[1;33m$*\e[0m"
}
run() {
check=1
while test $# -gt 0; do
@ -300,7 +306,7 @@ to() {
esac
shift;
done
if checkfile "$1" && test $rebuild -eq 0 \
if checkfile "$1" && test $rebuild -eq 0 -o "$1" = "configure.ac" \
&& ! contains "$1" "${rebuildfiles[@]}"; then
# file already exists and must not be rebuilt
return 1
@ -367,9 +373,15 @@ copy ${MY_NAME}
copy ax_init_standard_project.m4
copy ax_cxx_compile_stdcxx_11.m4
copy ax_check_qt.m4
copy AUTHORS
AUTHOR=$(gpg -K | sed -n 's,uid *,,p' | sort | head -1)
if test -z "${AUTHOR}"; then
AUTHOR="FIRSTNAME LASTNAME (URL) <EMAIL>"
fi
to AUTHORS <<EOF && notice "please edit AUTHORS"
$AUTHOR
EOF
to configure.ac <<EOF && \
( echo "please edit configure.ac, then rerun $0"; exit 0 )
( notice "please edit configure.ac, then rerun $0"; exit 0 )
${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
@ -387,10 +399,11 @@ AX_INIT_STANDARD_PROJECT
#AX_USE_RPM_PACKAGING
#AX_USE_CPPUNIT
#AX_BUILD_EXAMPLES
#AX_BUILD_HTML
# qt features, uncomment, what you need:
#AX_CHECK_QT([QT], [QtCore QtGui QtNetwork], [QtWidgets])
#AM_CPPFLAGS="${AM_CPPFLAGS} -DQT_NO_KEYWORDS"
#AX_QT_NO_KEYWORDS
# create output
AC_OUTPUT
@ -490,9 +503,17 @@ LDADD = -l${PACKAGE_NAME}
MAINTAINERCLEANFILES = makefile.in
EOF
if testtag AX_USE_DOXYGEN && \
( ! checkfile doc/doxyfile.in || \
contains doc/doxyfile.in "${rebuildfiles[@]}" ); then
to --condition AX_BUILD_HTML html/makefile.am <<EOF
${HEADER}EXTRA_DIST = \${www_DATA}
wwwdir = \${pkgdatadir}/html
www_DATA =
MAINTAINERCLEANFILES = makefile.in
EOF
if testtag AX_USE_DOXYGEN; then
if ! checkfile doc/doxyfile.in || \
contains doc/doxyfile.in "${rebuildfiles[@]}"; then
run doxygen -g doc/doxyfile.in
if test $exists -eq 0; then
run svn add doc/doxyfile.in
@ -563,6 +584,7 @@ if testtag AX_USE_DOXYGEN && \
doxyreplace INTERACTIVE_SVG YES
doxyreplace DOT_TRANSPARENT YES
fi
fi
if testtag AX_USE_DEBIAN_PACKAGING; then
checkdir debian
to debian/changelog.in <<EOF
@ -579,7 +601,8 @@ Maintainer: @AUTHOR@
Build-Depends: debhelper, pkg-config, autotools-dev, lsb-release $(if testtag AX_USE_DOXYGEN; then echo -n ", doxygen, graphviz"; fi; if testtag AX_USE_CPPUNIT; then echo -n ", libcppunit-dev"; fi; if testtag AX_CXX_QT || testtag AX_CXX_CHECK_QT; then echo -n ", qtbase5-dev | libqt4-dev, qtbase5-dev-tools | qt4-dev-tools"; fi)
Package: @PACKAGE_NAME@
$(if testtag AX_USE_LIBTOOL; then echo "Section: libs"; fi)Architecture: any
Section: $(if testtag AX_USE_LIBTOOL; then echo "libs"; fi)
Architecture: any
Depends: \${shlibs:Depends}, \${misc:Depends}
Description: @DESCRIPTION@
@README_DEB@
@ -617,7 +640,7 @@ EOF
echo 7 | to debian/compat
fi
SUBDIRS=""
for d in src test scripts doc examples; do
for d in src test scripts doc examples html; do
test -d $d && SUBDIRS="${SUBDIRS} $d"
done
to makefile.am<<EOF

Loading…
Cancel
Save