Update buildsys
This commit is contained in:
parent
e0ff07860a
commit
6139e5b982
4 changed files with 361 additions and 169 deletions
|
@ -1,6 +1,7 @@
|
|||
dnl
|
||||
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017
|
||||
dnl Jonathan Schleifer <js@heap.zone>
|
||||
dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017,
|
||||
dnl 2018
|
||||
dnl Jonathan Schleifer <js@heap.zone>
|
||||
dnl
|
||||
dnl https://heap.zone/git/?p=buildsys.git
|
||||
dnl
|
||||
|
@ -22,6 +23,19 @@ dnl POSSIBILITY OF SUCH DAMAGE.
|
|||
dnl
|
||||
|
||||
AC_DEFUN([BUILDSYS_INIT], [
|
||||
AC_REQUIRE([AC_CANONICAL_BUILD])
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
|
||||
case "$build_os" in
|
||||
darwin*)
|
||||
case "$host_os" in
|
||||
darwin*)
|
||||
AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
AC_SUBST(CC_DEPENDS, $GCC)
|
||||
AC_SUBST(CXX_DEPENDS, $GXX)
|
||||
|
@ -59,6 +73,20 @@ AC_DEFUN([BUILDSYS_INIT], [
|
|||
"$($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)")
|
||||
|
@ -116,15 +144,16 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
|
|||
AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_MSG_CHECKING(for shared library system)
|
||||
|
||||
case "$host_os" 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'
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
|
||||
PLUGIN_CFLAGS='-fPIC -DPIC'
|
||||
PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
|
||||
PLUGIN_SUFFIX='.bundle'
|
||||
|
@ -136,6 +165,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
AC_MSG_RESULT(MinGW / Cygwin)
|
||||
LIB_CFLAGS=''
|
||||
LIB_LDFLAGS='-shared -Wl,--export-all-symbols,--out-implib,${SHARED_LIB}.a'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.dll'
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
|
@ -150,6 +180,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
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}'
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
|
@ -164,6 +195,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
AC_MSG_RESULT(Solaris)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
|
@ -178,6 +210,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
AC_MSG_RESULT(Android)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
LDFLAGS_RPATH=''
|
||||
|
@ -192,6 +225,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
AC_MSG_RESULT(ELF)
|
||||
LIB_CFLAGS='-fPIC -DPIC'
|
||||
LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
|
||||
LIB_LDFLAGS_INSTALL_NAME=''
|
||||
LIB_PREFIX='lib'
|
||||
LIB_SUFFIX='.so'
|
||||
LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
|
||||
|
@ -206,10 +240,10 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
|
||||
AC_SUBST(LIB_CFLAGS)
|
||||
AC_SUBST(LIB_LDFLAGS)
|
||||
AC_SUBST(LIB_LDFLAGS_INSTALL_NAME)
|
||||
AC_SUBST(LIB_PREFIX)
|
||||
AC_SUBST(LIB_SUFFIX)
|
||||
AC_SUBST(LDFLAGS_RPATH)
|
||||
AC_SUBST(LDFLAGS_INSTALL_NAME)
|
||||
AC_SUBST(PLUGIN_CFLAGS)
|
||||
AC_SUBST(PLUGIN_LDFLAGS)
|
||||
AC_SUBST(PLUGIN_SUFFIX)
|
||||
|
@ -217,3 +251,39 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
|
|||
AC_SUBST(UNINSTALL_LIB)
|
||||
AC_SUBST(CLEAN_LIB)
|
||||
])
|
||||
|
||||
AC_DEFUN([BUILDSYS_FRAMEWORK], [
|
||||
AC_REQUIRE([AC_CANONICAL_HOST])
|
||||
AC_REQUIRE([BUILDSYS_SHARED_LIB])
|
||||
|
||||
AC_CHECK_TOOL(CODESIGN, codesign)
|
||||
|
||||
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
|
||||
], [
|
||||
AC_MSG_RESULT(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}'
|
||||
], [
|
||||
AC_MSG_RESULT(no)
|
||||
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)
|
||||
|
||||
$1
|
||||
;;
|
||||
esac
|
||||
])
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue