summaryrefslogtreecommitdiff
path: root/m4/nonpic.m4
blob: bbb81c131726fdbaaf880ab476568d197153ab4b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
dnl AC_LIBTOOL_NON_PIC ([ACTION-IF-WORKS], [ACTION-IF-FAILS])
dnl check for nonbuggy libtool -prefer-non-pic
AC_DEFUN([AC_LIBTOOL_NON_PIC],
    [AC_MSG_CHECKING([if libtool supports -prefer-non-pic flag])
    mkdir ac_test_libtool; cd ac_test_libtool; ac_cv_libtool_non_pic=no
    echo "int g (int i); static int h (int i) {return g (i);} int f (int i) {return h (i);}" >f.c
    echo "int (* hook) (int) = 0; int g (int i) {if (hook) i = hook (i); return i + 1;}" >g.c
    ../libtool --mode=compile $CC $CFLAGS -prefer-non-pic \
                -c f.c >/dev/null 2>&1 && \
        ../libtool --mode=compile $CC $CFLAGS -prefer-non-pic \
                -c g.c >/dev/null 2>&1 && \
        ../libtool --mode=link $CC $CFLAGS -prefer-non-pic -o libfoo.la \
                -rpath / f.lo g.lo >/dev/null 2>&1 &&
        ac_cv_libtool_non_pic=yes
    cd ..; rm -fr ac_test_libtool; AC_MSG_RESULT([$ac_cv_libtool_non_pic])
    if test x"$ac_cv_libtool_non_pic" = x"yes"; then
        ifelse([$1],[],[:],[$1])
    else
        ifelse([$2],[],[:],[$2])
    fi])