summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--m4/as-version.m451
-rw-r--r--m4/pkg.m456
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
+])
+
+