. ./redoconf.rc rc_include rc/CC.rc prog=' #include 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 "" elif [ -n "$NOSHARED" ]; then echo "--disable-shared specified; not building shared libraries." >&2 rc_replaceln HAVE_SHLIB "" 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_undo rc_replaceln HAVE_SHLIB "" fi rc_save