## @id $Id$ ## 1 2 3 4 5 6 7 8 ## 45678901234567890123456789012345678901234567890123456789012345678901234567890 # m4_esyscmd_s does not exist on centos 5 and 6 m4_define([mrw_esyscmd_s], [m4_normalize(m4_esyscmd([$1]))]) # define least version number from subversion's revision number: # it is taken modulo 256 due to a bug on Apple's MaxOSX m4_define(x_least, m4_ifdef([x_least_fix], [x_least_fix], m4_ifdef([x_least_diff], mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do if test -d .svn; then svn upgrade 1>&2 > /dev/null || true VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi done echo $ECHO_N $(($VCS_REVISION)) ]), mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do if test -d .svn; then svn upgrade 1>&2 > /dev/null || true VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi done # Mac does not support LEAST > 255 echo $ECHO_N $(($VCS_REVISION%256))])))) # define version number from subversion's revision number: # it is taken modulo 256 due to a bug on Apple's MacOSX # add to x_minor if revision number is > 256 m4_define(x_minor_diff, m4_ifdef([x_least_fix], 0, mrw_esyscmd_s([ VCS_REVISION="ERROR-UNDEFINED-REVISION-to-be-built-in-subdirectory-of-checkout" for path in . .. ../.. ../../..; do if test -d .svn; then svn upgrade 1>&2 > /dev/null || true VCS_REVISION=$(LANG= svn info $path | sed -n 's/Last Changed Rev: //p') if test -n "${VCS_REVISION}"; then break; fi elif test -d .git; then VCS_REVISION=$(git rev-list --all --count) if test -n "${VCS_REVISION}"; then break; fi fi; done # Mac does not support LEAST > 255 echo $ECHO_N $(($VCS_REVISION/256))]))) # setup version number m4_define(x_version, [x_major.m4_ifdef([x_least_diff], x_minor, m4_eval(x_minor+x_minor_diff)).m4_eval(m4_ifdef([x_least_diff], [x_least-x_least_diff], [x_least]))]) ## bugreport mail address is taken from in first line of AUTHORS m4_define(x_bugreport, mrw_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 ]) # add target dependencies to an existing makefile.in # - parameters: # $1 = existing target # $2 = new dependency for that target # $3 = filename of makefile.in AC_DEFUN([AX_ADD_MAKEFILE_TARGET_DEP], [ sh_add_makefile_target_dep() { sed -i -e ':a;/^'${1}':.*\\$/{N;s/\\\n//;ta};s/^'${1}':.*$/& '${2}'/' "${srcdir}/${3}" if ! egrep -q "${1}:.* ${2}" "${srcdir}/${3}"; then echo "${1}: ${2}" >> "${srcdir}/${3}" fi } sh_add_makefile_target_dep "$1" "$2" "$3" if test "$1" != ".PHONY"; then sh_add_makefile_target_dep ".PHONY" "$2" "$3" fi ]) # Same as AC_SUBST, but adds -Dname="value" option to CPPFLAGS and a # notz only a @name@ replacement, but also a @name_ENCODED@ one to be # used in code. # - parameters: # $1 = variable name AC_DEFUN([AX_SUBST], [ [$1]_ENCODED=$(echo "${$1}" | awk 1 ORS='\\n' | sed 's,\\n$,,') [$1]_ENCODED=${[$1]_ENCODED//\"/\\\"} [$1]_ENCODED=${[$1]_ENCODED//\'/\'\"\'\"\'} [$1]_ENCODED=${[$1]_ENCODED//#/\\#} AM_CPPFLAGS+=" '-D$1=\"${[$1]_ENCODED}\"'" AC_SUBST([$1]) AC_SUBST([$1]_ENCODED) AC_SUBST(AM_CPPFLAGS) ]) # must be called on the right position in configure.ac # # configure.ac must start with: # # m4_define(x_package_name, YOUR_PACKAGE_NAME) # project's name # m4_define(x_major, MAJOR_NUMBER) # project's major version # m4_define(x_minor, MINOR_NUMBER) # project's minor version # m4_include(ax_init_standard_project.m4) # AC_INIT(x_package_name, x_version, x_bugreport, x_package_name) # AM_INIT_AUTOMAKE([1.9 tar-pax parallel-tests color-tests]) # AX_INIT_STANDARD_PROJECT # # you change nothing but: YOUR_PACKAGE_NAME, MAJOR_NUMBER, MINOR_NUMBER # # configures the basic environment AC_DEFUN([AX_INIT_STANDARD_PROJECT], [ PREFIX=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${prefix}") AX_SUBST(PREFIX) SYSCONFDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${sysconfdir}") AX_SUBST(SYSCONFDIR) PKGSYSCONFDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${SYSCONFDIR}/${PACKAGE_NAME}") AX_SUBST(PKGSYSCONFDIR) DATADIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${datadir}") AX_SUBST(DATADIR) PKGDATADIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${DATADIR}/${PACKAGE_NAME}") AX_SUBST(PKGDATADIR) LOCALSTATEDIR=$(test "$prefix" = NONE && prefix=$ac_default_prefix; eval echo "${localstatedir}") AX_SUBST(LOCALSTATEDIR) AC_MSG_CHECKING([target platfrom]) UNIX=1 MINGW= MACOSX= for h in ${target} ${target_os} ${host} ${host_os} \ ${build} ${build_os} $(uname -s 2> /dev/null); do p="$h is generic Unix" case "$h" in (*mingw*) UNIX=; MINGW=1; p="MinGW"; break;; (*Darwin*|*darwin*|*rhapsody*|*macosx*) UNIX=; MACOSX=1; p="MacOSX"; break;; esac done AC_MSG_RESULT($p) AM_CONDITIONAL(UNIX, test "$UNIX" = "1") AM_CONDITIONAL(MINGW, test "$MINGW" = "1") AM_CONDITIONAL(MACOSX, test "$MACOSX" = "1") AX_SUBST(UNIX) AX_SUBST(MINGW) AX_SUBST(MACOSX) AM_CPPFLAGS+=" '-DMAKE_STRING(X)=\#X' '-DNAMESPACE=${PACKAGE_TARNAME//[^a-zA-Z0-9]/_}'" AX_SUBST(NUMBERS) AX_SUBST(HOME) if test -f README.md; then README=$(tail -n +3 README.md) DESCRIPTION=$(head -1 README.md) else README=$(tail -n +3 README) DESCRIPTION=$(head -1 README) fi README_ESCAPED=$(echo "$README" | sed ':a;N;$!ba;s/\n/\\n/g;s,",\\",g') if which pandoc 2>&1 > /dev/null; then README_HTML=$(echo "$README" | pandoc -f markdown_github -t html | sed ':a;N;$!ba;s,\\\(.\),\\\\\1,g;s/\n/\\n/g;s,",\\",g;s, ,\ \ ,g') else README_HTML="${README}" fi AX_SUBST(README) _AM_SUBST_NOTMAKE([README]) AX_SUBST(README_ESCAPED) _AM_SUBST_NOTMAKE([README_ESCAPED]) AX_SUBST(README_HTML) _AM_SUBST_NOTMAKE([README_HTML]) AX_SUBST(DESCRIPTION) _AM_SUBST_NOTMAKE([DESCRIPTION]) LICENSE=$(echo $(head -1 COPYING)) AX_SUBST(LICENSE) COPYING=$(.*,\1,') PACKAGER=$(gpg -K --display-charset utf-8 --lock-never 2>/dev/null | sed -n 's,uid *\(\[[ultimate\]] *\)\?,,p' | head -1) if test -z "${PACKAGER}"; then PACKAGER="$AUTHOR" fi AX_SUBST(AUTHOR) _AM_SUBST_NOTMAKE([AUTHOR]) AX_SUBST(AUTHOR_NAME) AX_SUBST(AUTHOR_URL) AX_SUBST(AUTHOR_MAIL) AX_SUBST(PACKAGER) PROJECT_URL="${PROJECT_URL:-${AUTHOR_URL}/projects/${PACKAGE_NAME}}" SOURCE_DOWNLOAD="${SOURCE_DOWNLOAD:-${AUTHOR_URL}/downloads/${PACKAGE_NAME}}" AX_SUBST(PROJECT_URL) AX_SUBST(SOURCE_DOWNLOAD) VENDOR=$((lsb_release -is 2>/dev/null || echo unknown) | tr ' ' '_') AX_SUBST(VENDOR) DISTRO=$(lsb_release -sc 2>/dev/null || uname -s 2>/dev/null) AX_SUBST(DISTRO) ARCH=$((@<:@@<:@ $(uname -sm) =~ 64 @:>@@:>@ && echo amd64) || (@<:@@<:@ $(uname -sm) =~ 'i?86' @:>@@:>@ && echo i386 || uname -sm)) AX_SUBST(ARCH) DISTRIBUTOR=$(lsb_release -si 2>/dev/null || uname -s 2>/dev/null) case "${DISTRIBUTOR// /-}" in (Ubuntu) UBUNTU=1; AX_SUBST(UBUNTU);; (Debian) DEBIAN=1; AX_SUBST(DEBIAN);; (SUSE-LINUX) SUSE=1; AX_SUBST(SUSE);; (Fedora) FEDORA=1; AX_SUBST(FEDORA);; (Centos) CENTOS=1; AX_SUBST(CENTOS);; esac AX_SUBST(DISTRIBUTOR) BUILD_NUMBER=${BUILD_NUMBER:-1} AX_SUBST(BUILD_NUMBER) BUILD_DATE=$(LANG= date +"%a, %d %b %Y %H:%M:%S %z") AX_SUBST(BUILD_DATE) if test -f "${PACKAGE_NAME}.desktop.in"; then PACKAGE_DESKTOP="${PACKAGE_NAME}.desktop" fi AX_SUBST(PACKAGE_DESKTOP) if test -f "${PACKAGE_NAME}-logo.png"; then PACKAGE_LOGO="${PACKAGE_NAME}-logo.png" fi AX_SUBST(PACKAGE_LOGO) if test -f "${PACKAGE_NAME}-icon.svg"; then PACKAGE_ICON="${PACKAGE_NAME}-icon.svg" elif test -f "${PACKAGE_NAME}-icon.png"; then PACKAGE_ICON="${PACKAGE_NAME}-icon.png" elif test -f "${PACKAGE_NAME}.svg"; then PACKAGE_ICON="${PACKAGE_NAME}.svg" elif test -f "${PACKAGE_NAME}.png"; then PACKAGE_ICON="${PACKAGE_NAME}.png" fi AX_SUBST(PACKAGE_ICON) 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 AC_ARG_ENABLE(debug, [AS_HELP_STRING([--enable-debug], [compile for debugger])], [have_debug="$enableval"], [have_debug="no"]) AM_CONDITIONAL(DEBUG, test "$enableval" = "yes") if test "$have_debug" == "yes"; then AC_MSG_NOTICE([Debug compile mode enabled]); AM_CPPFLAGS="${AM_CPPFLAGS} -DDEBUG" AM_CXXFLAGS="${AM_CXXFLAGS:-} -ggdb3 -O0" AM_LDFLAGS="${AM_LDFLAGS} -ggdb3 -O0" else AM_CPPFLAGS="${AM_CPPFLAGS} -DQT_NO_DEBUG_OUTPUT -DQT_NO_DEBUG" fi AC_ARG_WITH(gcov, [AS_HELP_STRING([--with-gcov=FILE], [enable gcov, set gcov file (defaults to gcov)])], [GCOV="$enableval"], [GCOV="no"]) AM_CONDITIONAL(COVERAGE, test "$GCOV" != "no") if test "$GCOV" != "no"; then if test "$GCOV" == "yes"; then GCOV=gcov fi AC_CHECK_PROG(has_gcov, [$GCOV], [yes], [no]) if test "$has_gcov" != "yes"; then AC_MSG_ERROR([gcov: program $GCOV not found]) fi AC_MSG_NOTICE([Coverage tests enabled, using ${GCOV}]); AM_CXXFLAGS="${AM_CXXFLAGS:-} -O0 --coverage -fprofile-arcs -ftest-coverage" AM_LDFLAGS="${AM_LDFLAGS} -O0 --coverage -fprofile-arcs" AX_SUBST(GCOV) fi if test -f ${PACKAGE_NAME}.desktop.in; then AC_CONFIG_FILES([${PACKAGE_NAME}.desktop]) fi 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 <> src/makefile.in <> src/makefile.in <> test/makefile.in <> examples/makefile.in <> nodejs/makefile.in <> cordova/makefile.in <> html/makefile.in <> src/makefile.in <> makefile.in <> makefile.in <> doc/makefile.in <> doc/makefile.in <Perl Documentation

Perl Documentation

    " > perldoc/index.html for p in \${PERL_SOURCES:%=perldoc/%}; do \ echo '
  • '"\$\${p#perldoc/}"'
  • ' >> perldoc/index.html; \ done echo "
" >> perldoc/index.html perldoc/%: pods2html --notoc --empty --index index @top_srcdir@/\${@:perldoc/%=%} \$[@] distclean-perldoc: -rm -r perldoc maintainer-clean-perldoc: -rm makefile.in install-data-perldoc: test -d \$(DESTDIR)\${docdir} || mkdir -p \$(DESTDIR)\${docdir} chmod -R u+w \$(DESTDIR)\${docdir} cp -r perldoc \$(DESTDIR)\${docdir}/ uninstall-perldoc: -chmod -R u+w \$(DESTDIR)\${docdir} -rm -rf \$(DESTDIR)\${docdir}/perldoc #### End: $0 EOF ]) # require a specific package, with fallback: test for a header # - parameter: # $1 = unique id (no special characters) # $2 = module name (optional, if different from id) # $3 = a header file to find (optional) # $4 = alternative module names (space separated, optional) # $5 = optional flags: # manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged # # uses PKG_CHECK_MODULES to test for a module # then, if given, looks for the header file # if header file is not found, searches in alternative modules # sets all flags, so that the module can be used everywhere # fails if not found AC_DEFUN([AX_PKG_REQUIRE], [ PKG_PROG_PKG_CONFIG optional_flags="$5" $1_found=no 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 $secondpar for feature $1 not installed, trying $4]) for pkg in $4; do PKG_CHECK_MODULES([$1], [$pkg], [ PKG_REQUIREMENTS+=" $pkg" $1_found=$pkg break; ], [ AC_MSG_WARN([Recommended package $pkg for feature $1 not installed]) ]) done fi ]) AC_SUBST(CPPFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) if test -n "$3"; then if test "${$1_found}" = "no"; then tmp_package="yes" else tmp_package=${$1_found} fi $1_found=no old_CPPFLAGS=${CPPFLAGS} CPPFLAGS=" ${$1_CFLAGS} ${CPPFLAGS}" AC_CHECK_HEADER([$3], [ $1_found=${tmp_package} ], [ for x in ${$1_CFLAGS}; do AC_MSG_NOTICE([search for $3 in ${x[#]-I}]) for f in $(find ${x[#]-I} -name "$3" 2> /dev/null); do if test -f "$f"; then $1_found=${tmp_package} $1_CFLAGS+=" -I${f%/*}" AC_MSG_NOTICE([added path ${f%/*}]) break; fi done if test "${$1_found}" != "no"; then break; fi done if test "${$1_found}" = "no"; then tmp_includedir=$(${PKG_CONFIG} --variable=includedir $tmp_package) for x in ${tmp_includedir}; do AC_MSG_NOTICE([search for $3 in $x]) for f in $(find ${x} -name "$3" 2> /dev/null); do if test -f "$f"; then $1_found=${tmp_package} $1_CFLAGS+=" -I${f%/*}" AC_MSG_NOTICE([added path ${f%/*}]) break; fi done if test "${$1_found}" != "no"; then break; fi done fi ]) CPPFLAGS=${old_CPPFLAGS} fi 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 $secondpar or $4]) else 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 $secondpar]) fi fi AX_DEB_DEPEND([${$1_found}]) AX_RPM_DEPEND([${$1_found}]) [$1]_CPPFLAGS="${$1_CFLAGS}" [$1]_CXXFLAGS="${$1_CFLAGS}" AC_SUBST([$1]_CPPFLAGS) AC_SUBST([$1]_CXXFLAGS) if test "${optional_flags/manualflags/}" = "${optional_flags}"; then CPPFLAGS+=" ${$1_CPPFLAGS}" CXXFLAGS+=" ${$1_CXXFLAGS}" LIBS+=" ${$1_LIBS}" AC_MSG_NOTICE([Adding flags for $1]) else AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) fi ]) # require a specific development package, with fallback: test for a header # - parameter: # $1 = unique id (no special characters) # $2 = module name (optional, if different from id) # $3 = a header file to find (optional) # $4 = alternative module names (space separated, optional) # $5 = optional flags: # manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged # # uses PKG_CHECK_MODULES to test for a module # then, if given, looks for the header file # if header file is not found, searches in alternative modules # sets all flags, so that the module can be used everywhere # fails if not found AC_DEFUN([AX_PKG_REQUIRE_DEV], [ PKG_PROG_PKG_CONFIG optional_flags="$5" $1_found=no 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 $secondpar for feature $1 not installed, trying $4]) for pkg in $4; do PKG_CHECK_MODULES([$1], [$pkg], [ PKG_REQUIREMENTS+=" $pkg" $1_found=$pkg break; ], [ AC_MSG_WARN([Recommended package $pkg for feature $1 not installed]) ]) done fi ]) AC_SUBST(CPPFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) if test -n "$3"; then if test "${$1_found}" = "no"; then tmp_package="yes" else tmp_package=${$1_found} fi $1_found=no old_CPPFLAGS=${CPPFLAGS} CPPFLAGS=" ${$1_CFLAGS} ${CPPFLAGS}" AC_CHECK_HEADER([$3], [ $1_found=${tmp_package} ], [ for x in ${$1_CFLAGS}; do AC_MSG_NOTICE([search for $3 in ${x[#]-I}]) for f in $(find ${x[#]-I} -name "$3" 2> /dev/null); do if test -f "$f"; then $1_found=${tmp_package} $1_CFLAGS+=" -I${f%/*}" AC_MSG_NOTICE([added path ${f%/*}]) break; fi done if test "${$1_found}" != "no"; then break; fi done if test "${$1_found}" = "no"; then tmp_includedir=$(${PKG_CONFIG} --variable=includedir $tmp_package) for x in ${tmp_includedir}; do AC_MSG_NOTICE([search for $3 in $x]) for f in $(find ${x} -name "$3" 2> /dev/null); do if test -f "$f"; then $1_found=${tmp_package} $1_CFLAGS+=" -I${f%/*}" AC_MSG_NOTICE([added path ${f%/*}]) break; fi done if test "${$1_found}" != "no"; then break; fi done fi ]) CPPFLAGS=${old_CPPFLAGS} fi 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 $secondpar or $4]) else 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 $secondpar]) fi fi AX_DEB_BUILD_DEPEND([${$1_found}-dev]) AX_RPM_BUILD_DEPEND([${$1_found}-devel]) [$1]_CPPFLAGS="${$1_CFLAGS}" [$1]_CXXFLAGS="${$1_CFLAGS}" AC_SUBST([$1]_CPPFLAGS) AC_SUBST([$1]_CXXFLAGS) if test "${optional_flags/manualflags/}" = "${optional_flags}"; then CPPFLAGS+=" ${$1_CPPFLAGS}" CXXFLAGS+=" ${$1_CXXFLAGS}" LIBS+=" ${$1_LIBS}" AC_MSG_NOTICE([Adding flags for $1]) else AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) fi ]) # check if a specific package exists # - parameter: # $1 = unique id (no special characters) # $2 = module name (optional, if different from id) # $3 = optional flags: # manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged # # uses PKG_CHECK_MODULES to test for a module # sets automake conditional HAVE_$1 to 0 (not found) or 1 (found) # sets all flags, so that the module can be used everywhere AC_DEFUN([AX_PKG_CHECK], [ optional_flags="$3" PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ HAVE_$1=1 [$1]_CPPFLAGS="${$1_CFLAGS}" [$1]_CXXFLAGS="${$1_CFLAGS}" AC_SUBST([$1]_CPPFLAGS) AC_SUBST([$1]_CXXFLAGS) if test "${optional_flags/manualflags/}" = "${optional_flags}"; then CPPFLAGS+=" ${$1_CPPFLAGS}" CXXFLAGS+=" ${$1_CXXFLAGS}" LIBS+=" ${$1_LIBS}" AC_MSG_NOTICE([Adding flags for $1]) else AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) fi if test -z "$PKG_REQUIREMENTS"; then PKG_REQUIREMENTS="m4_default([$2], [$1])" else PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, m4_default([$2], [$1])" fi ], [ HAVE_$1=0 ]) AX_DEB_BUILD_DEPEND(m4_default([$2], [$1])) AX_RPM_BUILD_DEPEND(m4_default([$2], [$1])) AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) AC_SUBST(HAVE_$1) AC_SUBST(CPPFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) ]) # check if a specific development package exists # - parameter: # $1 = unique id (no special characters) # $2 = module name (optional, if different from id) # $3 = optional flags: # manualflags if CXXFLAGS, CPPFLAGS, LIBS should remain unchanged # # uses PKG_CHECK_MODULES to test for a module # sets automake conditional HAVE_$1 to 0 (not found) or 1 (found) # sets all flags, so that the module can be used everywhere AC_DEFUN([AX_PKG_CHECK_DEV], [ optional_flags="$3" PKG_PROG_PKG_CONFIG PKG_CHECK_MODULES([$1], [m4_default([$2], [$1])], [ HAVE_$1=1 [$1]_CPPFLAGS="${$1_CFLAGS}" [$1]_CXXFLAGS="${$1_CFLAGS}" AC_SUBST([$1]_CPPFLAGS) AC_SUBST([$1]_CXXFLAGS) if test "${optional_flags/manualflags/}" = "${optional_flags}"; then CPPFLAGS+=" ${$1_CPPFLAGS}" CXXFLAGS+=" ${$1_CXXFLAGS}" LIBS+=" ${$1_LIBS}" AC_MSG_NOTICE([Adding flags for $1]) else AC_MSG_NOTICE([To enable $1, add $1_CPPFLAGS, $1_CXXFLAGS and $1_LIBS]) fi if test -z "$PKG_REQUIREMENTS"; then PKG_REQUIREMENTS="m4_default([$2], [$1])" else PKG_REQUIREMENTS="${PKG_REQUIREMENTS}, m4_default([$2], [$1])" fi ], [ HAVE_$1=0 ]) AX_DEB_BUILD_DEPEND(m4_default([$2], [$1])-dev) AX_RPM_BUILD_DEPEND(m4_default([$2], [$1])-devel) AM_CONDITIONAL(HAVE_$1, test $HAVE_[$1] -eq 1) AC_SUBST(HAVE_$1) AC_SUBST(CPPFLAGS) AC_SUBST(CXXFLAGS) AC_SUBST(PKG_REQUIREMENTS) ]) # make sure, a specific header exists # - parameter: # $1 = header name # $2 = pathes to search for 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 ], []) ], []) ]) # Check within a list of CPP-Flags for the first that is usable and # configure it # - parameter: # $1 = white-space separated list of alternative flags # $2 = module name (optional, if different from id) AC_DEFUN([AX_CHECK_VALID_CPP_FLAG], [ AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) save_cppflags="$CPPFLAGS" newflag="no" for test_flag in $1; do CPPFLAGS+=" ${test_flag}" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ newflag="$test_flag" CPPFLAGS="$save_cppflags" CPPFLAGS+=" ${test_flag}" break; ]) CPPFLAGS="$save_cppflags" done AC_SUBST(CPPFLAGS) AC_MSG_RESULT([$newflag in $CPPFLAGS]) ]) # Check within a list of CXX-Flags for the first that is usable and # configure it # - parameter: # $1 = white-space separated list of alternative flags # $2 = module name (optional, if different from id) AC_DEFUN([AX_CHECK_VALID_CXX_FLAG], [ AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) save_cxxflags="$CXXFLAGS" newflag="no" for test_flag in $1; do CXXFLAGS+=" ${test_flag}" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ newflag="$test_flag" CXXFLAGS="$save_cxxflags" CXXFLAGS+=" ${test_flag}" break; ]) CXXFLAGS="$save_cxxflags" done AC_SUBST(CXXFLAGS) AC_MSG_RESULT([$newflag in $CXXFLAGS]) ]) # Check within a list of C-Flags for the first that is usable and # configure it # - parameter: # $1 = white-space separated list of alternative flags # $2 = module name (optional, if different from id) AC_DEFUN([AX_CHECK_VALID_C_FLAG], [ AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) save_cflags="$CFLAGS" newflag="no" for test_flag in $1; do CFLAGS+=" ${test_flag}" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ newflag="$test_flag" CFLAGS="$save_cflags" CFLAGS+=" ${test_flag}" break; ]) CFLAGS="$save_cflags" done AC_SUBST(CFLAGS) AC_MSG_RESULT([$newflag in $CFLAGS]) ]) # Check within a list of LD-Flags for the first that is usable and # configure it # - parameter: # $1 = white-space separated list of alternative flags # $2 = module name (optional, if different from id) AC_DEFUN([AX_CHECK_VALID_LD_FLAG], [ AC_MSG_CHECKING([m4_default([$2], [for valid flag in "$1"])]) save_ldflags="$LDFLAGS" newflag="no" for test_flag in $1; do LDFLAGS+=" ${test_flag}" AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ newflag="$test_flag" LDFLAGS="$save_ldflags" LDFLAGS+=" ${test_flag}" break; ]) LDFLAGS="$save_ldflags" done AC_SUBST(LDFLAGS) AC_MSG_RESULT([$newflag in $LDFLAGS]) ]) # Check if a package exists in the current distribution, if yes, require it # in debian/control.in append @DEB_DEPEND_IFEXISTS@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_DEB_DEPEND_IFEXISTS], [ pkg="$1" if test -n "$(apt-cache policy -q ${pkg} 2> /dev/null)"; then DEB_DEPEND_IFEXISTS="${DEB_DEPEND_IFEXISTS}, ${pkg}" fi ]) # require package in debian/control.in append @DEB_BUILD_DEPEND@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_DEB_BUILD_DEPEND], [ pkg="$1" DEB_BUILD_DEPEND="${DEB_BUILD_DEPEND}, ${pkg}" ]) # require package in debian/control.in append @DEB_DEPEND@ to Depends # - parameter: # $1 = package name AC_DEFUN([AX_DEB_DEPEND], [ pkg="$1" DEB_DEPEND="${DEB_DEPEND}, ${pkg}" ]) # require package in debian/control.in append @DEB_DEPEND@ to Depends # - parameter: # $1 = package name AC_DEFUN([AX_DEB_SECTION], [ pkg="$1" DEB_SECTION="${pkg}" ]) # call after setting debian dependencies AC_DEFUN([AX_DEB_RESOLVE], [ AC_SUBST(DEB_BUILD_DEPEND) AC_SUBST(DEB_DEPEND) AC_SUBST(DEB_SECTION) AC_SUBST(DEB_DEPEND_IFEXISTS) ]) # Check if a package exists in the current distribution, if yes, require it # in .spec.in append @RPM_DEPEND_IFEXISTS@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_RPM_DEPEND_IFEXISTS], [ pkg="$1" if (test -x /usr/bin/zypper && zypper search -x "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/bin/dnf && dnf list -q "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/bin/yum && yum list -q "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/sbin/urpmq && urpmq "$pkg" 1>&2 > /dev/null); then RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}" fi ]) # require package in .spec.in append @RPM_BUILD_DEPEND@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_RPM_BUILD_DEPEND], [ pkg="$1" RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}" ]) # require package in .spec.in append @RPM_DEPEND@ to Depends # - parameter: # $1 = package name AC_DEFUN([AX_RPM_DEPEND], [ pkg="$1" if test -z "${RPM_DEPEND}"; then RPM_DEPEND="${pkg}" else RPM_DEPEND="${RPM_DEPEND}, ${pkg}" fi ]) # require package in debian/control.in append @DEB_DEPEND@ to Depends # - parameter: # $1 = package name AC_DEFUN([AX_RPM_GROUP], [ pkg="$1" RPM_GROUP="${pkg}" ]) # call after setting rpmian dependencies AC_DEFUN([AX_RPM_RESOLVE], [ AC_SUBST(RPM_BUILD_DEPEND) AC_SUBST(RPM_DEPEND) AC_SUBST(RPM_GROUP) AC_SUBST(RPM_DEPEND_IFEXISTS) ]) # Check if a package exists in the current distribution, if yes, require it # in .spec.in append @ALL_DEPEND_IFEXISTS@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_ALL_DEPEND_IFEXISTS], [ pkg="$1" if test -n "$(apt-cache policy -q ${pkg} 2> /dev/null)"; then DEB_DEPEND_IFEXISTS="${DEB_DEPEND_IFEXISTS}, ${pkg}" fi if (test -x /usr/bin/zypper && zypper search -x "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/bin/dnf && dnf list -q "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/bin/yum && yum list -q "$pkg" 1>&2 > /dev/null) || \ (test -x /usr/sbin/urpmq && urpmq "$pkg" 1>&2 > /dev/null); then RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}" fi ]) # Check if a package exists in the current distribution, if yes, require it # in .spec.in append @ALL_DEPEND_IFEXISTS@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_ALL_DEPEND_IFEXISTS_DEV], [ pkg="$1" if test -n "$(apt-cache policy -q ${pkg}-dev 2> /dev/null)"; then DEB_DEPEND_IFEXISTS="${DEB_DEPEND_IFEXISTS}, ${pkg}-dev" fi if (test -x /usr/bin/zypper && zypper search -x "$pkg"-devel 1>&2 > /dev/null) || \ (test -x /usr/bin/dnf && dnf list -q "$pkg"-devel 1>&2 > /dev/null) || \ (test -x /usr/bin/yum && yum list -q "$pkg"-devel 1>&2 > /dev/null) || \ (test -x /usr/sbin/urpmq && urpmq "$pkg"-devel 1>&2 > /dev/null); then RPM_DEPEND_IFEXISTS="${RPM_DEPEND_IFEXISTS}, ${pkg}-devel" fi ]) # require package in .spec.in append @ALL_BUILD_DEPEND@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_ALL_BUILD_DEPEND], [ pkg="$1" DEB_BUILD_DEPEND="${DEB_BUILD_DEPEND}, ${pkg}" RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}" ]) # require package in .spec.in append @ALL_BUILD_DEPEND@ to Build-Depends # - parameter: # $1 = package name AC_DEFUN([AX_ALL_BUILD_DEPEND_DEV], [ pkg="$1" DEB_BUILD_DEPEND="${DEB_BUILD_DEPEND}, ${pkg}-dev" RPM_BUILD_DEPEND="${RPM_BUILD_DEPEND}, ${pkg}-devel" ]) # require package in .spec.in append @ALL_DEPEND@ to Depends # - parameter: # $1 = package name AC_DEFUN([AX_ALL_DEPEND], [ pkg="$1" DEB_DEPEND="${DEB_DEPEND}, ${pkg}" if test -z "${RPM_DEPEND}"; then RPM_DEPEND="${pkg}" else RPM_DEPEND="${RPM_DEPEND}, ${pkg}" fi ]) AC_DEFUN([AX_OUTPUT], [ AX_DEB_RESOLVE AX_RPM_RESOLVE AC_OUTPUT ])