Add build system and boilerplate
FossilOrigin-Name: f4f7ec59913f58beff7b54b86e3ea84fb45b1bfd6950719adef3975e71c610a5
This commit is contained in:
parent
f456a2b790
commit
6ae5b43b5a
15 changed files with 5287 additions and 0 deletions
78
build-aux/m4/ax_check_compiler_flags.m4
Normal file
78
build-aux/m4/ax_check_compiler_flags.m4
Normal file
|
@ -0,0 +1,78 @@
|
|||
# ===========================================================================
|
||||
# http://autoconf-archive.cryp.to/ax_check_compiler_flags.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check whether the given compiler FLAGS work with the current language's
|
||||
# compiler, or whether they give an error. (Warnings, however, are
|
||||
# ignored.)
|
||||
#
|
||||
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
|
||||
# success/failure.
|
||||
#
|
||||
# LAST MODIFICATION
|
||||
#
|
||||
# 2008-04-12
|
||||
#
|
||||
# COPYLEFT
|
||||
#
|
||||
# Copyright (c) 2008 Steven G. Johnson <stevenj@alum.mit.edu>
|
||||
# Copyright (c) 2008 Matteo Frigo
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by the
|
||||
# Free Software Foundation, either version 3 of the License, or (at your
|
||||
# option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
# Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along
|
||||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
# As a special exception, the respective Autoconf Macro's copyright owner
|
||||
# gives unlimited permission to copy, distribute and modify the configure
|
||||
# scripts that are the output of Autoconf when processing the Macro. You
|
||||
# need not follow the terms of the GNU General Public License when using
|
||||
# or distributing such scripts, even though portions of the text of the
|
||||
# Macro appear in them. The GNU General Public License (GPL) does govern
|
||||
# all other use of the material that constitutes the Autoconf Macro.
|
||||
#
|
||||
# This special exception to the GPL applies to versions of the Autoconf
|
||||
# Macro released by the Autoconf Macro Archive. When you make and
|
||||
# distribute a modified version of the Autoconf Macro, you may extend this
|
||||
# special exception to the GPL to apply to your modified version as well.
|
||||
|
||||
AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
|
||||
[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
|
||||
AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
|
||||
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
|
||||
AS_LITERAL_IF([$1],
|
||||
[AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1), [
|
||||
ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
|
||||
AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
|
||||
[ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
|
||||
_AC_LANG_PREFIX[]FLAGS="$1"
|
||||
AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
|
||||
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
|
||||
eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
|
||||
_AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
|
||||
eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)
|
||||
AC_MSG_RESULT($ax_check_compiler_flags)
|
||||
if test "x$ax_check_compiler_flags" = xyes; then
|
||||
m4_default([$2], :)
|
||||
else
|
||||
m4_default([$3], :)
|
||||
fi
|
||||
])dnl AX_CHECK_COMPILER_FLAGS
|
386
build-aux/m4/buildsys.m4
Normal file
386
build-aux/m4/buildsys.m4
Normal file
|
@ -0,0 +1,386 @@
|
|||
dnl
|
||||
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017,
|
||||
dnl 2018, 2020, 2021, 2022
|
||||
dnl Jonathan Schleifer <js@nil.im>
|
||||
dnl
|
||||
dnl https://fossil.nil.im/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_INIT], [
|
||||
AC_REQUIRE([AC_CANONICAL_BUILD])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
AC_ARG_ENABLE(rpath,
|
||||
AS_HELP_STRING([--disable-rpath], [do not use rpath]))
|
||||
|
||||
case "$build_os" in
|
||||
darwin*)
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_PROG_INSTALL
|
||||
case "$INSTALL" in
|
||||
./build-aux/install-sh*)
|
||||
INSTALL="$PWD/$INSTALL"
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
AS_IF([test x"$GCC" = x"yes"],
|
||||
[AC_SUBST(DEP_CFLAGS, '-MD -MF $${out%.o}.dep')])
|
||||
AS_IF([test x"$GXX" = x"yes"],
|
||||
[AC_SUBST(DEP_CXXFLAGS, '-MD -MF $${out%.o}.dep')])
|
||||
AS_IF([test x"$GOBJC" = x"yes"],
|
||||
[AC_SUBST(DEP_OBJCFLAGS, '-MD -MF $${out%.o}.dep')])
|
||||
AS_IF([test x"$GOBJCXX" = x"yes"],
|
||||
[AC_SUBST(DEP_OBJCXXFLAGS, '-MD -MF $${out%.o}.dep')])
|
||||
|
||||
AC_SUBST(AMIGA_LIB_CFLAGS)
|
||||
AC_SUBST(AMIGA_LIB_LDFLAGS)
|
||||
|
||||
case "$build_os" in
|
||||
morphos*)
|
||||
dnl Don't use tput on MorphOS: The colored output is
|
||||
dnl quite unreadable and in some MorphOS versions the
|
||||
dnl output from tput is not 8-bit safe, with awk (for
|
||||
dnl AC_SUBST) failing as a result.
|
||||
;;
|
||||
*)
|
||||
AC_PATH_PROG(TPUT, tput)
|
||||
;;
|
||||
esac
|
||||
|
||||
AS_IF([test x"$TPUT" != x""], [
|
||||
if x=$($TPUT el 2>/dev/null); then
|
||||
AC_SUBST(TERM_EL, "$x")
|
||||
else
|
||||
AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
|
||||
fi
|
||||
|
||||
if x=$($TPUT sgr0 2>/dev/null); then
|
||||
AC_SUBST(TERM_SGR0, "$x")
|
||||
else
|
||||
AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
|
||||
fi
|
||||
|
||||
if x=$($TPUT bold 2>/dev/null); then
|
||||
AC_SUBST(TERM_BOLD, "$x")
|
||||
else
|
||||
AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
|
||||
fi
|
||||
|
||||
if x=$($TPUT setaf 1 2>/dev/null); then
|
||||
AC_SUBST(TERM_SETAF1, "$x")
|
||||
AC_SUBST(TERM_SETAF2,
|
||||
"$($TPUT setaf 2 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF3,
|
||||
"$($TPUT setaf 3 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF4,
|
||||
"$($TPUT setaf 4 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF6,
|
||||
"$($TPUT setaf 6 2>/dev/null)")
|
||||
dnl OpenBSD seems to want 3 parameters for terminals
|
||||
dnl ending in -256color, but the additional two
|
||||
dnl parameters don't seem to do anything, so we set
|
||||
dnl them to 0.
|
||||
elif x=$($TPUT setaf 1 0 0 2>/dev/null); then
|
||||
AC_SUBST(TERM_SETAF1, "$x")
|
||||
AC_SUBST(TERM_SETAF2,
|
||||
"$($TPUT setaf 2 0 0 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF3,
|
||||
"$($TPUT setaf 3 0 0 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF4,
|
||||
"$($TPUT setaf 4 0 0 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF6,
|
||||
"$($TPUT setaf 6 0 0 2>/dev/null)")
|
||||
else
|
||||
AC_SUBST(TERM_SETAF1,
|
||||
"$($TPUT AF 1 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF2,
|
||||
"$($TPUT AF 2 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF3,
|
||||
"$($TPUT AF 3 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF4,
|
||||
"$($TPUT AF 4 2>/dev/null)")
|
||||
AC_SUBST(TERM_SETAF6,
|
||||
"$($TPUT AF 6 2>/dev/null)")
|
||||
fi
|
||||
])
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([BUILDSYS_CHECK_IOS], [
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
AC_MSG_CHECKING(whether host is iOS)
|
||||
AC_EGREP_CPP(yes, [
|
||||
#include <TargetConditionals.h>
|
||||
|
||||
#if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || \
|
||||
(defined(TARGET_OS_SIMULATOR) && \
|
||||
TARGET_OS_SIMULATOR)
|
||||
yes
|
||||
#endif
|
||||
], [
|
||||
host_is_ios="yes"
|
||||
], [
|
||||
host_is_ios="no"
|
||||
])
|
||||
AC_MSG_RESULT($host_is_ios)
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
||||
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_REQUIRE([BUILDSYS_CHECK_IOS])
|
||||
AC_MSG_CHECKING(for shared library system)
|
||||
|
||||
case "$host" in
|
||||
*-*-darwin*)
|
||||
AC_MSG_RESULT(Darwin)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.dylib'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-bundle ${PLUGIN_LDFLAGS_BUNDLE_LOADER}'
|
||||
PLUGIN_SUFFIX='.bundle'
|
||||
AS_IF([test x"$host_is_ios" = x"yes"], [
|
||||
LINK_PLUGIN='rm -fr $$out && ${MKDIR_P} $$out && if test -f Info.plist; then ${INSTALL} -m 644 Info.plist $$out/Info.plist; fi && ${LD} -o $$out/$${out%${PLUGIN_SUFFIX}} ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out'
|
||||
], [
|
||||
LINK_PLUGIN='rm -fr $$out && ${MKDIR_P} $$out/Contents/MacOS && if test -f Info.plist; then ${INSTALL} -m 644 Info.plist $$out/Contents/Info.plist; fi && ${LD} -o $$out/Contents/MacOS/$${out%${PLUGIN_SUFFIX}} ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS} && ${CODESIGN} -fs ${CODESIGN_IDENTITY} --timestamp=none $$out'
|
||||
])
|
||||
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'
|
||||
INSTALL_PLUGIN='&& rm -fr ${DESTDIR}${plugindir}/$$i && cp -R $$i ${DESTDIR}${plugindir}/'
|
||||
UNINSTALL_PLUGIN='&& rm -fr ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
*-*-mingw* | *-*-cygwin*)
|
||||
AC_MSG_RESULT(MinGW / Cygwin)
|
||||
LIB_CFLAGS=''
|
||||
LIB_LDFLAGS='-shared -Wl,--export-all-symbols'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX=''
|
||||
LIB_SUFFIX='${LIB_MAJOR}.dll'
|
||||
LINK_LIB='&& rm -f lib$${out%${LIB_SUFFIX}}.dll.a && ${LN_S} $$out lib$${out%${LIB_SUFFIX}}.dll.a'
|
||||
PLUGIN_CFLAGS=''
|
||||
PLUGIN_LDFLAGS='-shared -Wl,--export-all-symbols'
|
||||
PLUGIN_SUFFIX='.dll'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 lib$${i%${LIB_SUFFIX}}.dll.a ${DESTDIR}${libdir}/lib$${i%${LIB_SUFFIX}}.dll.a'
|
||||
UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/lib$${i%${LIB_SUFFIX}}.dll.a'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB='${SHARED_LIB}.a ${SHARED_LIB_NOINST}.a'
|
||||
;;
|
||||
*-*-openbsd* | *-*-mirbsd*)
|
||||
AC_MSG_RESULT(OpenBSD)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.so'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
|
||||
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
*-*-solaris*)
|
||||
AC_MSG_RESULT(Solaris)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}.${LIB_MINOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.so'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
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}'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
*-*-android*)
|
||||
AC_MSG_RESULT(Android)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.so'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
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'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
hppa*-*-hpux*)
|
||||
AC_MSG_RESULT([HP-UX (PA-RISC)])
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,+h,$$out'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.${LIB_MAJOR}'
|
||||
LINK_LIB='&& rm -f $${out%%.*}.sl && ${LN_S} $$out $${out%%.*}.sl'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,+b,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.sl'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i && ${LN_S} -f $$i ${DESTDIR}${libdir}/$${i%%.*}.sl'
|
||||
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%%.*}.sl'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
ia64*-*-hpux*)
|
||||
AC_MSG_RESULT([HP-UX (Itanium)])
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,+h,$$out'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.${LIB_MAJOR}'
|
||||
LINK_LIB='&& rm -f $${out%%.*}.so && ${LN_S} $$out $${out%%.*}.so'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,+b,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.so'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i && ${LN_S} -f $$i ${DESTDIR}${libdir}/$${i%%.*}.so'
|
||||
UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%%.*}.so'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
*)
|
||||
AC_MSG_RESULT(ELF)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
AS_IF([test x"$enable_rpath" != x"no"], [
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
])
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-shared'
|
||||
PLUGIN_SUFFIX='.so'
|
||||
LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
|
||||
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'
|
||||
INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
|
||||
UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
|
||||
CLEAN_LIB=''
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(LIB_CFLAGS)
|
||||
AC_SUBST(LIB_LDFLAGS)
|
||||
AC_SUBST(LIB_LDFLAGS_INSTALL_NAME)
|
||||
AC_SUBST(LIB_PREFIX)
|
||||
AC_SUBST(LIB_SUFFIX)
|
||||
AC_SUBST(LINK_LIB)
|
||||
AC_SUBST(LDFLAGS_RPATH)
|
||||
AC_SUBST(PLUGIN_CFLAGS)
|
||||
AC_SUBST(PLUGIN_LDFLAGS)
|
||||
AC_SUBST(PLUGIN_SUFFIX)
|
||||
AC_SUBST(LINK_PLUGIN)
|
||||
AC_SUBST(INSTALL_LIB)
|
||||
AC_SUBST(UNINSTALL_LIB)
|
||||
AC_SUBST(INSTALL_PLUGIN)
|
||||
AC_SUBST(UNINSTALL_PLUGIN)
|
||||
AC_SUBST(CLEAN_LIB)
|
||||
])
|
||||
|
||||
AC_DEFUN([BUILDSYS_FRAMEWORK], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([BUILDSYS_CHECK_IOS])
|
||||
AC_REQUIRE([BUILDSYS_SHARED_LIB])
|
||||
|
||||
AC_CHECK_TOOL(CODESIGN, codesign)
|
||||
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
AS_IF([test x"$host_is_ios" = x"yes"], [
|
||||
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
||||
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
|
||||
], [
|
||||
FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
|
||||
FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
|
||||
])
|
||||
|
||||
AC_SUBST(FRAMEWORK_LDFLAGS)
|
||||
AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME)
|
||||
AC_SUBST(FRAMEWORK_LIBS)
|
||||
|
||||
$1
|
||||
;;
|
||||
esac
|
||||
])
|
Loading…
Add table
Add a link
Reference in a new issue