11dnl
2- dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016
2+ dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017
33dnl Jonathan Schleifer <js@heap.zone>
44dnl
55dnl https://heap.zone/git/?p=buildsys.git
@@ -59,6 +59,20 @@ AC_DEFUN([BUILDSYS_INIT], [
5959 "$ ( $TPUT setaf 4 2>/dev/null ) " )
6060 AC_SUBST ( TERM_SETAF6 ,
6161 "$ ( $TPUT setaf 6 2>/dev/null ) " )
62+ dnl OpenBSD seems to want 3 parameters for terminals
63+ dnl ending in -256color, but the additional two
64+ dnl parameters don't seem to do anything, so we set
65+ dnl them to 0.
66+ elif x=$($TPUT setaf 1 0 0 2>/dev/null); then
67+ AC_SUBST ( TERM_SETAF1 , "$x" )
68+ AC_SUBST ( TERM_SETAF2 ,
69+ "$ ( $TPUT setaf 2 0 0 2>/dev/null ) " )
70+ AC_SUBST ( TERM_SETAF3 ,
71+ "$ ( $TPUT setaf 3 0 0 2>/dev/null ) " )
72+ AC_SUBST ( TERM_SETAF4 ,
73+ "$ ( $TPUT setaf 4 0 0 2>/dev/null ) " )
74+ AC_SUBST ( TERM_SETAF6 ,
75+ "$ ( $TPUT setaf 6 0 0 2>/dev/null ) " )
6276 else
6377 AC_SUBST ( TERM_SETAF1 ,
6478 "$ ( $TPUT AF 1 2>/dev/null ) " )
@@ -100,7 +114,7 @@ AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
100114 cygwin* | mingw*)
101115 AC_MSG_RESULT ( yes )
102116 PROG_IMPLIB_NEEDED='yes'
103- PROG_IMPLIB_LDFLAGS='-Wl,-export-all-symbols,--out-implib,lib${PROG}.a'
117+ PROG_IMPLIB_LDFLAGS='-Wl,-- export-all-symbols,--out-implib,lib${PROG}.a'
104118 ;;
105119 *)
106120 AC_MSG_RESULT ( no )
@@ -121,10 +135,10 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
121135 AC_MSG_RESULT ( Darwin )
122136 LIB_CFLAGS='-fPIC -DPIC'
123137 LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
138+ LIB_LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
124139 LIB_PREFIX='lib'
125140 LIB_SUFFIX='.dylib'
126141 LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
127- LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
128142 PLUGIN_CFLAGS='-fPIC -DPIC'
129143 PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
130144 PLUGIN_SUFFIX='.bundle'
@@ -135,7 +149,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
135149 mingw* | cygwin*)
136150 AC_MSG_RESULT ( MinGW / Cygwin )
137151 LIB_CFLAGS=''
138- LIB_LDFLAGS='-shared -Wl,--out-implib,${SHARED_LIB}.a'
152+ LIB_LDFLAGS='-shared -Wl,--export-all-symbols,--out-implib,${SHARED_LIB}.a'
153+ LIB_LDFLAGS_INSTALL_NAME=''
139154 LIB_PREFIX='lib'
140155 LIB_SUFFIX='.dll'
141156 LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
@@ -150,6 +165,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
150165 AC_MSG_RESULT ( OpenBSD )
151166 LIB_CFLAGS='-fPIC -DPIC'
152167 LIB_LDFLAGS='-shared'
168+ LIB_LDFLAGS_INSTALL_NAME=''
153169 LIB_PREFIX='lib'
154170 LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
155171 LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
@@ -164,6 +180,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
164180 AC_MSG_RESULT ( Solaris )
165181 LIB_CFLAGS='-fPIC -DPIC'
166182 LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}.${LIB_MINOR}'
183+ LIB_LDFLAGS_INSTALL_NAME=''
167184 LIB_PREFIX='lib'
168185 LIB_SUFFIX='.so'
169186 LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
@@ -178,6 +195,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
178195 AC_MSG_RESULT ( Android )
179196 LIB_CFLAGS='-fPIC -DPIC'
180197 LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
198+ LIB_LDFLAGS_INSTALL_NAME=''
181199 LIB_PREFIX='lib'
182200 LIB_SUFFIX='.so'
183201 LDFLAGS_RPATH=''
@@ -192,6 +210,7 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
192210 AC_MSG_RESULT ( ELF )
193211 LIB_CFLAGS='-fPIC -DPIC'
194212 LIB_LDFLAGS='-shared -Wl,-soname=${SHARED_LIB}.${LIB_MAJOR}'
213+ LIB_LDFLAGS_INSTALL_NAME=''
195214 LIB_PREFIX='lib'
196215 LIB_SUFFIX='.so'
197216 LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
@@ -206,14 +225,48 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
206225
207226 AC_SUBST ( LIB_CFLAGS )
208227 AC_SUBST ( LIB_LDFLAGS )
228+ AC_SUBST ( LIB_LDFLAGS_INSTALL_NAME )
209229 AC_SUBST ( LIB_PREFIX )
210230 AC_SUBST ( LIB_SUFFIX )
211231 AC_SUBST ( LDFLAGS_RPATH )
212- AC_SUBST ( LDFLAGS_INSTALL_NAME )
213232 AC_SUBST ( PLUGIN_CFLAGS )
214233 AC_SUBST ( PLUGIN_LDFLAGS )
215234 AC_SUBST ( PLUGIN_SUFFIX )
216235 AC_SUBST ( INSTALL_LIB )
217236 AC_SUBST ( UNINSTALL_LIB )
218237 AC_SUBST ( CLEAN_LIB )
219238] )
239+
240+ AC_DEFUN ( [ BUILDSYS_FRAMEWORK] , [
241+ AC_REQUIRE ( [ AC_CANONICAL_HOST ] )
242+ AC_REQUIRE ( [ BUILDSYS_SHARED_LIB] )
243+
244+ AC_CHECK_TOOL ( CODESIGN , codesign )
245+
246+ case "$host_os" in
247+ darwin*)
248+ AC_MSG_CHECKING ( whether host is iOS )
249+ AC_EGREP_CPP ( yes , [
250+ #include <TargetConditionals.h>
251+
252+ #if (defined(TARGET_OS_IPHONE) && \
253+ TARGET_OS_IPHONE) || \
254+ (defined(TARGET_OS_SIMULATOR) && \
255+ TARGET_OS_SIMULATOR)
256+ yes
257+ #endif
258+ ] , [
259+ AC_MSG_RESULT ( yes )
260+ FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
261+ FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
262+ ] , [
263+ AC_MSG_RESULT ( no )
264+ FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
265+ FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
266+ ] )
267+
268+ AC_SUBST ( FRAMEWORK_LDFLAGS )
269+ AC_SUBST ( FRAMEWORK_LDFLAGS_INSTALL_NAME )
270+ ;;
271+ esac
272+ ] )
0 commit comments