Mercurial > pidgin.yaz
diff acinclude.m4 @ 10245:c143a3fac58d
[gaim-migrate @ 11385]
Binary relocation, step one.
I had a fairly long commit message, and cvs ate it and said
Read from remote host cvs.sourceforge.net: Connection reset by peer
I'm displeased.
This is just method one, method two to follow tomorrow after I add a
way to register a fallback and try to push it upstream. That way
I don't have to put method 2 inside prefix.c.
As for as core/ui split goes, they can either each have their own copy
after the divorce is final, or the UI can use the core's. It'll work
either way, since #1 finds location of the caller, and #2 doesn't work
on libraries anyway. That's one advantage I forgot to mention, btw,
that #1 will let a library find its own location.
So, I'm sure something isn't quite right and someone will want to fix
it. So they can fix it while i implement phase two. Which won't take
long at all, but the autopackage guy is in bed, and I should be too.
committer: Tailor Script <tailor@pidgin.im>
author | Tim Ringenbach <marv@pidgin.im> |
---|---|
date | Tue, 23 Nov 2004 05:53:59 +0000 |
parents | f15fcdbecf0a |
children | 949b7986f42c |
line wrap: on
line diff
--- a/acinclude.m4 Tue Nov 23 02:49:09 2004 +0000 +++ b/acinclude.m4 Tue Nov 23 05:53:59 2004 +0000 @@ -786,3 +786,83 @@ else AC_MSG_WARN(could not find perl) fi])dnl + + +dnl This file scares me... +# Check for binary relocation support +# Hongli Lai +# http://autopackage.org/ + +AC_DEFUN([AM_BINRELOC], +[ + AC_ARG_ENABLE(binreloc, + [ --enable-binreloc compile with binary relocation support + (default=enable when available)], + enable_binreloc=$enableval,enable_binreloc=auto) + + AC_ARG_ENABLE(binreloc-threads, + [ --enable-binreloc-threads compile binary relocation with threads support + (default=yes)], + enable_binreloc_threads=$enableval,enable_binreloc_threads=yes) + + BINRELOC_CFLAGS= + BINRELOC_LIBS= + if test "x$enable_binreloc" = "xauto"; then + AC_CHECK_FILE([/proc/self/maps]) + AC_CACHE_CHECK([whether everything is installed to the same prefix], + [br_cv_valid_prefixes], [ + if test "$bindir" = '${exec_prefix}/bin' -a "$sbindir" = '${exec_prefix}/sbin' -a \ + "$datadir" = '${prefix}/share' -a "$libdir" = '${exec_prefix}/lib' -a \ + "$libexecdir" = '${exec_prefix}/libexec' -a "$sysconfdir" = '${prefix}/etc' + then + br_cv_valid_prefixes=yes + else + br_cv_valid_prefixes=no + fi + ]) + fi + AC_CACHE_CHECK([whether binary relocation support should be enabled], + [br_cv_binreloc], + [if test "x$enable_binreloc" = "xyes"; then + br_cv_binreloc=yes + elif test "x$enable_binreloc" = "xauto"; then + if test "x$br_cv_valid_prefixes" = "xyes" -a \ + "x$ac_cv_file__proc_self_maps" = "xyes"; then + br_cv_binreloc=yes + else + br_cv_binreloc=no + fi + else + br_cv_binreloc=no + fi]) + + if test "x$br_cv_binreloc" = "xyes"; then + BINRELOC_CFLAGS="-DENABLE_BINRELOC" + AC_DEFINE(ENABLE_BINRELOC,,[Use binary relocation?]) + if test "x$enable_binreloc_threads" = "xyes"; then + AC_CHECK_LIB([pthread], [pthread_getspecific]) + fi + + AC_CACHE_CHECK([whether binary relocation should use threads], + [br_cv_binreloc_threads], + [if test "x$enable_binreloc_threads" = "xyes"; then + if test "x$ac_cv_lib_pthread_pthread_getspecific" = "xyes"; then + br_cv_binreloc_threads=yes + else + br_cv_binreloc_threads=no + fi + else + br_cv_binreloc_threads=no + fi]) + + if test "x$br_cv_binreloc_threads" = "xyes"; then + BINRELOC_LIBS="-lpthread" + AC_DEFINE(BR_PTHREAD,1,[Include pthread support for binary relocation?]) + else + BINRELOC_CFLAGS="$BINRELOC_CFLAGS -DBR_PTHREAD=0" + AC_DEFINE(BR_PTHREAD,0,[Include pthread support for binary relocation?]) + fi + fi + AC_SUBST(BINRELOC_CFLAGS) + AC_SUBST(BINRELOC_LIBS) +])