summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorAndrew Shadura <bugzilla@tut.by>2011-11-17 19:46:12 +0100
committerAndrew Shadura <bugzilla@tut.by>2011-11-17 19:46:12 +0100
commit1de62163f0237e2fdd7d9b5ee7c29c57851ce87e (patch)
treea95ba9fa7b572f833e2d360d4fa03806d80407d2 /m4
initial import
Diffstat (limited to 'm4')
-rw-r--r--m4/buildsys.m4185
-rw-r--r--m4/pkg.m458
2 files changed, 243 insertions, 0 deletions
diff --git a/m4/buildsys.m4 b/m4/buildsys.m4
new file mode 100644
index 0000000..bb5a955
--- /dev/null
+++ b/m4/buildsys.m4
@@ -0,0 +1,185 @@
+dnl
+dnl Copyright (c) 2007 - 2009, Jonathan Schleifer <js@webkeks.org>
+dnl
+dnl https://webkeks.org/hg/buildsys/
+dnl
+dnl Permission to use, copy, modify, and/or distribute this software for any
+dnl purpose with or without fee is hereby granted, provided that the above
+dnl copyright notice and this permission notice is present in all copies.
+dnl
+dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+dnl AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+dnl ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+dnl LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+dnl POSSIBILITY OF SUCH DAMAGE.
+dnl
+
+AC_DEFUN([BUILDSYS_LIB], [
+ AC_ARG_ENABLE(shared,
+ AS_HELP_STRING([--disable-shared], [don't build shared libraries]))
+
+ AS_IF([test x"$enable_shared" = x"no"],
+ [BUILDSYS_STATIC_LIB_ONLY],
+ [BUILDSYS_SHARED_LIB])
+])
+
+AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_MSG_CHECKING(whether we need an implib)
+ case "$host_os" in
+ cygwin* | mingw*)
+ AC_MSG_RESULT(yes)
+ PROG_IMPLIB_NEEDED='yes'
+ PROG_IMPLIB_LDFLAGS='-Wl,-export-all-symbols,--out-implib,lib${PROG}.a'
+ ;;
+ *)
+ AC_MSG_RESULT(no)
+ PROG_IMPLIB_NEEDED='no'
+ PROG_IMPLIB_LDFLAGS=''
+ ;;
+ esac
+
+ AC_SUBST(PROG_IMPLIB_NEEDED)
+ AC_SUBST(PROG_IMPLIB_LDFLAGS)
+])
+
+AC_DEFUN([BUILDSYS_SHARED_LIB], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_MSG_CHECKING(for shared library system)
+ case "$host_os" in
+ darwin*)
+ AC_MSG_RESULT(Darwin)
+ LIB_CPPFLAGS='-DPIC'
+ LIB_CFLAGS='-fPIC'
+ LIB_LDFLAGS='-dynamiclib -flat_namespace'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.dylib'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CPPFLAGS='-DPIC'
+ PLUGIN_CFLAGS='-fPIC'
+ PLUGIN_LDFLAGS='-bundle -flat_namespace -undefined suppress'
+ PLUGIN_SUFFIX='.impl'
+ INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+ CLEAN_LIB=''
+ ;;
+ solaris*)
+ AC_MSG_RESULT(Solaris)
+ LIB_CPPFLAGS='-DPIC'
+ LIB_CFLAGS='-fPIC'
+ LIB_LDFLAGS='-shared -fPIC -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CPPFLAGS='-DPIC'
+ PLUGIN_CFLAGS='-fPIC'
+ PLUGIN_LDFLAGS='-shared -fPIC'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+ CLEAN_LIB=''
+ ;;
+ openbsd* | mirbsd*)
+ AC_MSG_RESULT(OpenBSD)
+ LIB_CPPFLAGS='-DPIC'
+ LIB_CFLAGS='-fPIC'
+ LIB_LDFLAGS='-shared -fPIC'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CPPFLAGS='-DPIC'
+ PLUGIN_CFLAGS='-fPIC'
+ PLUGIN_LDFLAGS='-shared -fPIC'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
+ CLEAN_LIB=''
+ ;;
+ cygwin* | mingw*)
+ AC_MSG_RESULT(Win32)
+ LIB_CPPFLAGS='-DPIC'
+ LIB_CFLAGS=''
+ LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.dll'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CPPFLAGS=''
+ PLUGIN_CFLAGS=''
+ PLUGIN_LDFLAGS='-shared'
+ PLUGIN_SUFFIX='.dll'
+ INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+ CLEAN_LIB='${LIB}.a'
+ ;;
+ *)
+ AC_MSG_RESULT(GNU)
+ LIB_CPPFLAGS='-DPIC'
+ LIB_CFLAGS='-fPIC'
+ LIB_LDFLAGS='-shared -fPIC -Wl,-soname=${LIB}.${LIB_MAJOR}'
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.so'
+ LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+ PLUGIN_CPPFLAGS='-DPIC'
+ PLUGIN_CFLAGS='-fPIC'
+ PLUGIN_LDFLAGS='-shared -fPIC'
+ PLUGIN_SUFFIX='.so'
+ INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
+ CLEAN_LIB=''
+ ;;
+ esac
+
+ AC_SUBST(LIB_CPPFLAGS)
+ AC_SUBST(LIB_CFLAGS)
+ AC_SUBST(LIB_LDFLAGS)
+ AC_SUBST(LIB_PREFIX)
+ AC_SUBST(LIB_SUFFIX)
+ AC_SUBST(LDFLAGS_RPATH)
+ AC_SUBST(PLUGIN_CPPFLAGS)
+ AC_SUBST(PLUGIN_CFLAGS)
+ AC_SUBST(PLUGIN_LDFLAGS)
+ AC_SUBST(PLUGIN_SUFFIX)
+ AC_SUBST(INSTALL_LIB)
+ AC_SUBST(UNINSTALL_LIB)
+ AC_SUBST(CLEAN_LIB)
+])
+
+AC_DEFUN([BUILDSYS_STATIC_LIB_ONLY], [
+ AC_REQUIRE([AC_PROG_RANLIB])
+ AC_PATH_TOOL(AR, ar)
+
+ LIB_CPPFLAGS=''
+ LIB_CFLAGS=''
+ LIB_LDFLAGS=''
+ LIB_PREFIX='lib'
+ LIB_SUFFIX='.a'
+ LDFLAGS_RPATH=''
+ INSTALL_LIB='${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i'
+ UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
+ CLEAN_LIB=''
+
+ AC_SUBST(LIB_CPPFLAGS)
+ AC_SUBST(LIB_CFLAGS)
+ AC_SUBST(LIB_LDFLAGS)
+ AC_SUBST(LIB_PREFIX)
+ AC_SUBST(LIB_SUFFIX)
+ AC_SUBST(LDFLAGS_RPATH)
+ AC_SUBST(INSTALL_LIB)
+ AC_SUBST(UNINSTALL_LIB)
+ AC_SUBST(CLEAN_LIB)
+])
+
+AC_DEFUN([BUILDSYS_TOUCH_DEPS], [
+ ${as_echo:="echo"} "${as_me:="configure"}: touching .deps files"
+ for i in $(find . -name Makefile); do
+ DEPSFILE="$(dirname $i)/.deps"
+ test -f "$DEPSFILE" && rm "$DEPSFILE"
+ touch -t 0001010000 "$DEPSFILE"
+ done
+])
diff --git a/m4/pkg.m4 b/m4/pkg.m4
new file mode 100644
index 0000000..1da9df4
--- /dev/null
+++ b/m4/pkg.m4
@@ -0,0 +1,58 @@
+
+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
+ PKG_CONFIG_MIN_VERSION=0.9.0
+ if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
+ 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
+ AC_MSG_RESULT(no)
+ $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)
+ else
+ echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
+ echo "*** See http://www.freedesktop.org/software/pkgconfig"
+ 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
+])
+
+