diff options
-rw-r--r-- | m4/as-version.m4 | 51 | ||||
-rw-r--r-- | m4/pkg.m4 | 56 |
2 files changed, 107 insertions, 0 deletions
diff --git a/m4/as-version.m4 b/m4/as-version.m4 new file mode 100644 index 0000000..bb63f22 --- /dev/null +++ b/m4/as-version.m4 @@ -0,0 +1,51 @@ +dnl AS_VERSION(PACKAGE, PREFIX, MAJOR, MINOR, MICRO, ACTION_IF_DEV, ACTION_IF_NOT_DEV) +dnl example +dnl AS_VERSION(gstreamer, GST_VERSION, 0, 3, 2) +dnl +dnl this macro +dnl - defines [$PREFIX]_MAJOR, MINOR and MICRO +dnl - adds an --with-dev[=nano] option to configure +dnl - defines [$PREFIX], VERSION, and [$PREFIX]_RELEASE +dnl - executes the relevant action +dnl - AC_SUBST's PACKAGE, VERSION, [$PREFIX] and [$PREFIX]_RELEASE +dnl - calls AM_INIT_AUTOMAKE + +AC_DEFUN(AS_VERSION, +[ + PACKAGE=[$1] + [$2]_MAJOR=[$3] + [$2]_MINOR=[$4] + [$2]_MICRO=[$5] + AC_ARG_WITH(dev, + [ --with-dev=[nano] with nano dev version], + [ + if test "$withval" = "yes"; then + NANO=1 + else + NANO=$withval + fi + AC_MSG_NOTICE(configuring [$1] for development with nano $NANO) + VERSION=[$3].[$4].[$5].$NANO + [$2]_RELEASE=`date +%Y%m%d-%H%M%S` + dnl execute action + [$6] + ], + [ + AC_MSG_NOTICE(configuring [$1] for release) + VERSION=[$3].[$4].[$5] + [$2]_RELEASE=1 + dnl execute action + [$7] + ]) + + AC_DEFINE_UNQUOTED([$2], "VERSION") + AC_SUBST([$2]) + AC_DEFINE_UNQUOTED([$2]_RELEASE, "[$2]_RELEASE") + AC_SUBST([$2]_RELEASE) + + AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE") + AC_SUBST(PACKAGE) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION") + AC_SUBST(VERSION) + AM_INIT_AUTOMAKE($PACKAGE, $VERSION) +]) diff --git a/m4/pkg.m4 b/m4/pkg.m4 new file mode 100644 index 0000000..874a120 --- /dev/null +++ b/m4/pkg.m4 @@ -0,0 +1,56 @@ + +dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not) +dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page +dnl also defines GSTUFF_PKG_ERRORS on error +AC_DEFUN(PKG_CHECK_MODULES, [ + succeeded=no + + if test -z "$PKG_CONFIG"; then + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + fi + + if test "$PKG_CONFIG" = "no" ; then + echo "*** The pkg-config script could not be found. Make sure it is" + echo "*** in your path, or set the PKG_CONFIG environment variable" + echo "*** to the full path to pkg-config." + echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config." + else + if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7.0; then + echo "*** Your version of pkg-config is too old. You need version 0.7.0 or newer." + echo "*** See http://www.freedesktop.org/software/pkgconfig" + else + AC_MSG_CHECKING(for $2) + + if $PKG_CONFIG --exists "$2" ; then + AC_MSG_RESULT(yes) + succeeded=yes + + AC_MSG_CHECKING($1_CFLAGS) + $1_CFLAGS=`$PKG_CONFIG --cflags "$2"` + AC_MSG_RESULT($$1_CFLAGS) + + AC_MSG_CHECKING($1_LIBS) + $1_LIBS=`$PKG_CONFIG --libs "$2"` + AC_MSG_RESULT($$1_LIBS) + else + $1_CFLAGS="" + $1_LIBS="" + ## If we have a custom action on failure, don't print errors, but + ## do set a variable so people can do so. + $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + ifelse([$4], ,echo $$1_PKG_ERRORS,) + fi + + AC_SUBST($1_CFLAGS) + AC_SUBST($1_LIBS) + fi + fi + + if test $succeeded = yes; then + ifelse([$3], , :, [$3]) + else + ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4]) + fi +]) + + |