apenwarr-redo/redoconf/rc/shlib.rc.od
Avery Pennarun 1a3c11f220 redoconf: a stub rc_include() now sources ./redoconf.rc automatically.
This lets us remove the awkward ". ./redoconf.rc" line from zillions
of .od scripts, without paying the price of *always* including that
whole file every time default.do.sh is used.
2019-03-02 04:24:58 -05:00

54 lines
1.2 KiB
Text

rc_include rc/CC.rc
prog='
#include <stdlib.h>
void f() { atoi(""); }
'
try_unix_style() {
(
appendln CFLAGS "-fPIC"
appendln LDFLAGS "-shared"
appendln LDFLAGS "-Wl,-soname,x.so"
RCC_NO_MAIN=1 rc_compile cc link "$prog"
)
}
try_macos_style() {
(
appendln CFLAGS "-fPIC"
appendln LDFLAGS "-dynamiclib"
appendln LDFLAGS "-current_version"
appendln LDFLAGS "1.0"
RCC_NO_MAIN=1 rc_compile cc link "$prog"
)
}
if [ -n "$STATIC" ]; then
echo "--enable-static specified; not building shared libraries." >&2
rc_replaceln HAVE_SHLIB "STATIC"
elif [ -n "$NOSHARED" ]; then
echo "--disable-shared specified; not building shared libraries." >&2
rc_replaceln HAVE_SHLIB "STATIC"
elif try_unix_style; then
rc_replaceln HAVE_SHLIB UNIX
elif try_macos_style; then
rc_replaceln HAVE_SHLIB MACOS
else
echo "Not building shared libraries on this platform." >&2
rc_replaceln HAVE_SHLIB "STATIC"
fi
if [ "$HAVE_SHLIB" != "STATIC" ]; then
x='-Wl,-z,origin'
if (appendln LDFLAGS "$x" && rc_compile cc link); then
rc_appendln LDFLAGS "$x"
fi
x='-Wl,-rpath,$ORIGIN'
if (appendln LDFLAGS "$x" && rc_compile cc link); then
rc_appendln LDFLAGS "$x"
fi
fi
rc_save