PageRenderTime 27ms CodeModel.GetById 32ms RepoModel.GetById 0ms app.codeStats 0ms

/m4/buildsys.m4

https://github.com/angband/angband
m4 | 372 lines | 347 code | 22 blank | 3 comment | 0 complexity | 0965c589888d9664b8e1c0d5c4a19e49 MD5 | raw file
  1. dnl
  2. dnl Copyright (c) 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017,
  3. dnl 2018, 2020, 2021
  4. dnl Jonathan Schleifer <js@nil.im>
  5. dnl
  6. dnl https://fossil.nil.im/buildsys
  7. dnl
  8. dnl Permission to use, copy, modify, and/or distribute this software for any
  9. dnl purpose with or without fee is hereby granted, provided that the above
  10. dnl copyright notice and this permission notice is present in all copies.
  11. dnl
  12. dnl THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  13. dnl AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  14. dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  15. dnl ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  16. dnl LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  17. dnl CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  18. dnl SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  19. dnl INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  20. dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  21. dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  22. dnl POSSIBILITY OF SUCH DAMAGE.
  23. dnl
  24. AC_DEFUN([BUILDSYS_INIT], [
  25. AC_REQUIRE([AC_CANONICAL_BUILD])
  26. AC_REQUIRE([AC_CANONICAL_HOST])
  27. case "$build_os" in
  28. darwin*)
  29. case "$host_os" in
  30. darwin*)
  31. AC_SUBST(BUILD_AND_HOST_ARE_DARWIN, yes)
  32. ;;
  33. esac
  34. ;;
  35. esac
  36. AC_PROG_INSTALL
  37. case "$INSTALL" in
  38. ./install-sh*)
  39. INSTALL="$(MKPATH)/../$INSTALL"
  40. ;;
  41. esac
  42. AC_CONFIG_COMMANDS_PRE([
  43. AS_IF([test x"$GCC" = x"yes"],
  44. [AC_SUBST(DEP_CFLAGS, '-MD -MF $${out%.o}.dep')])
  45. AS_IF([test x"$GXX" = x"yes"],
  46. [AC_SUBST(DEP_CXXFLAGS, '-MD -MF $${out%.o}.dep')])
  47. AS_IF([test x"$GOBJC" = x"yes"],
  48. [AC_SUBST(DEP_OBJCFLAGS, '-MD -MF $${out%.o}.dep')])
  49. AS_IF([test x"$GOBJCXX" = x"yes"],
  50. [AC_SUBST(DEP_OBJCXXFLAGS, '-MD -MF $${out%.o}.dep')])
  51. AC_SUBST(AMIGA_LIB_CFLAGS)
  52. AC_SUBST(AMIGA_LIB_LDFLAGS)
  53. case "$build_os" in
  54. morphos*)
  55. dnl Don't use tput on MorphOS: The colored output is
  56. dnl quite unreadable and in some MorphOS versions the
  57. dnl output from tput is not 8-bit safe, with awk (for
  58. dnl AC_SUBST) failing as a result.
  59. ;;
  60. *)
  61. AC_PATH_PROG(TPUT, tput)
  62. ;;
  63. esac
  64. AS_IF([test x"$TPUT" != x""], [
  65. if x=$($TPUT el 2>/dev/null); then
  66. AC_SUBST(TERM_EL, "$x")
  67. else
  68. AC_SUBST(TERM_EL, "$($TPUT ce 2>/dev/null)")
  69. fi
  70. if x=$($TPUT sgr0 2>/dev/null); then
  71. AC_SUBST(TERM_SGR0, "$x")
  72. else
  73. AC_SUBST(TERM_SGR0, "$($TPUT me 2>/dev/null)")
  74. fi
  75. if x=$($TPUT bold 2>/dev/null); then
  76. AC_SUBST(TERM_BOLD, "$x")
  77. else
  78. AC_SUBST(TERM_BOLD, "$($TPUT md 2>/dev/null)")
  79. fi
  80. if x=$($TPUT setaf 1 2>/dev/null); then
  81. AC_SUBST(TERM_SETAF1, "$x")
  82. AC_SUBST(TERM_SETAF2,
  83. "$($TPUT setaf 2 2>/dev/null)")
  84. AC_SUBST(TERM_SETAF3,
  85. "$($TPUT setaf 3 2>/dev/null)")
  86. AC_SUBST(TERM_SETAF4,
  87. "$($TPUT setaf 4 2>/dev/null)")
  88. AC_SUBST(TERM_SETAF6,
  89. "$($TPUT setaf 6 2>/dev/null)")
  90. dnl OpenBSD seems to want 3 parameters for terminals
  91. dnl ending in -256color, but the additional two
  92. dnl parameters don't seem to do anything, so we set
  93. dnl them to 0.
  94. elif x=$($TPUT setaf 1 0 0 2>/dev/null); then
  95. AC_SUBST(TERM_SETAF1, "$x")
  96. AC_SUBST(TERM_SETAF2,
  97. "$($TPUT setaf 2 0 0 2>/dev/null)")
  98. AC_SUBST(TERM_SETAF3,
  99. "$($TPUT setaf 3 0 0 2>/dev/null)")
  100. AC_SUBST(TERM_SETAF4,
  101. "$($TPUT setaf 4 0 0 2>/dev/null)")
  102. AC_SUBST(TERM_SETAF6,
  103. "$($TPUT setaf 6 0 0 2>/dev/null)")
  104. else
  105. AC_SUBST(TERM_SETAF1,
  106. "$($TPUT AF 1 2>/dev/null)")
  107. AC_SUBST(TERM_SETAF2,
  108. "$($TPUT AF 2 2>/dev/null)")
  109. AC_SUBST(TERM_SETAF3,
  110. "$($TPUT AF 3 2>/dev/null)")
  111. AC_SUBST(TERM_SETAF4,
  112. "$($TPUT AF 4 2>/dev/null)")
  113. AC_SUBST(TERM_SETAF6,
  114. "$($TPUT AF 6 2>/dev/null)")
  115. fi
  116. ])
  117. ])
  118. ])
  119. AC_DEFUN([BUILDSYS_CHECK_IOS], [
  120. case "$host_os" in
  121. darwin*)
  122. AC_MSG_CHECKING(whether host is iOS)
  123. AC_EGREP_CPP(yes, [
  124. #include <TargetConditionals.h>
  125. #if (defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE) || \
  126. (defined(TARGET_OS_SIMULATOR) && \
  127. TARGET_OS_SIMULATOR)
  128. yes
  129. #endif
  130. ], [
  131. host_is_ios="yes"
  132. ], [
  133. host_is_ios="no"
  134. ])
  135. AC_MSG_RESULT($host_is_ios)
  136. ;;
  137. esac
  138. ])
  139. AC_DEFUN([BUILDSYS_PROG_IMPLIB], [
  140. AC_REQUIRE([AC_CANONICAL_HOST])
  141. AC_MSG_CHECKING(whether we need an implib)
  142. case "$host_os" in
  143. cygwin* | mingw*)
  144. AC_MSG_RESULT(yes)
  145. PROG_IMPLIB_NEEDED='yes'
  146. PROG_IMPLIB_LDFLAGS='-Wl,--export-all-symbols,--out-implib,lib${PROG}.a'
  147. ;;
  148. *)
  149. AC_MSG_RESULT(no)
  150. PROG_IMPLIB_NEEDED='no'
  151. PROG_IMPLIB_LDFLAGS=''
  152. ;;
  153. esac
  154. AC_SUBST(PROG_IMPLIB_NEEDED)
  155. AC_SUBST(PROG_IMPLIB_LDFLAGS)
  156. ])
  157. AC_DEFUN([BUILDSYS_SHARED_LIB], [
  158. AC_REQUIRE([AC_CANONICAL_HOST])
  159. AC_REQUIRE([BUILDSYS_CHECK_IOS])
  160. AC_MSG_CHECKING(for shared library system)
  161. case "$host" in
  162. *-*-darwin*)
  163. AC_MSG_RESULT(Darwin)
  164. LIB_CFLAGS='-fPIC -DPIC'
  165. LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
  166. LIB_LDFLAGS_INSTALL_NAME='-Wl,-install_name,${libdir}/$${out%.dylib}.${LIB_MAJOR}.dylib'
  167. LIB_PREFIX='lib'
  168. LIB_SUFFIX='.dylib'
  169. LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
  170. PLUGIN_CFLAGS='-fPIC -DPIC'
  171. PLUGIN_LDFLAGS='-bundle ${PLUGIN_LDFLAGS_BUNDLE_LOADER}'
  172. PLUGIN_SUFFIX='.bundle'
  173. AS_IF([test x"$host_is_ios" = x"yes"], [
  174. 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'
  175. ], [
  176. 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'
  177. ])
  178. 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'
  179. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
  180. INSTALL_PLUGIN='&& rm -fr ${DESTDIR}${plugindir}/$$i && cp -R $$i ${DESTDIR}${plugindir}/'
  181. UNINSTALL_PLUGIN='&& rm -fr ${DESTDIR}${plugindir}/$$i'
  182. CLEAN_LIB=''
  183. ;;
  184. *-*-mingw* | *-*-cygwin*)
  185. AC_MSG_RESULT(MinGW / Cygwin)
  186. LIB_CFLAGS=''
  187. LIB_LDFLAGS='-shared -Wl,--export-all-symbols,--out-implib,lib$${out%${LIB_SUFFIX}}.a'
  188. LIB_LDFLAGS_INSTALL_NAME=''
  189. LIB_PREFIX=''
  190. LIB_SUFFIX='${LIB_MAJOR}.dll'
  191. LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
  192. PLUGIN_CFLAGS=''
  193. PLUGIN_LDFLAGS='-shared'
  194. PLUGIN_SUFFIX='.dll'
  195. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  196. INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 lib$${i%${LIB_SUFFIX}}.a ${DESTDIR}${libdir}/lib$${i%${LIB_SUFFIX}}.a'
  197. UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/lib$$i.a'
  198. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  199. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  200. CLEAN_LIB='${SHARED_LIB}.a ${SHARED_LIB_NOINST}.a'
  201. ;;
  202. *-*-openbsd* | *-*-mirbsd*)
  203. AC_MSG_RESULT(OpenBSD)
  204. LIB_CFLAGS='-fPIC -DPIC'
  205. LIB_LDFLAGS='-shared'
  206. LIB_LDFLAGS_INSTALL_NAME=''
  207. LIB_PREFIX='lib'
  208. LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
  209. LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
  210. PLUGIN_CFLAGS='-fPIC -DPIC'
  211. PLUGIN_LDFLAGS='-shared'
  212. PLUGIN_SUFFIX='.so'
  213. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  214. INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
  215. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
  216. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  217. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  218. CLEAN_LIB=''
  219. ;;
  220. *-*-solaris*)
  221. AC_MSG_RESULT(Solaris)
  222. LIB_CFLAGS='-fPIC -DPIC'
  223. LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}.${LIB_MINOR}'
  224. LIB_LDFLAGS_INSTALL_NAME=''
  225. LIB_PREFIX='lib'
  226. LIB_SUFFIX='.so'
  227. LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
  228. PLUGIN_CFLAGS='-fPIC -DPIC'
  229. PLUGIN_LDFLAGS='-shared'
  230. PLUGIN_SUFFIX='.so'
  231. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  232. 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'
  233. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
  234. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  235. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  236. CLEAN_LIB=''
  237. ;;
  238. *-*-android*)
  239. AC_MSG_RESULT(Android)
  240. LIB_CFLAGS='-fPIC -DPIC'
  241. LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
  242. LIB_LDFLAGS_INSTALL_NAME=''
  243. LIB_PREFIX='lib'
  244. LIB_SUFFIX='.so'
  245. LDFLAGS_RPATH=''
  246. PLUGIN_CFLAGS='-fPIC -DPIC'
  247. PLUGIN_LDFLAGS='-shared'
  248. PLUGIN_SUFFIX='.so'
  249. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  250. 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'
  251. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
  252. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  253. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  254. CLEAN_LIB=''
  255. ;;
  256. hppa*-*-hpux*)
  257. AC_MSG_RESULT([HP-UX (PA-RISC)])
  258. LIB_CFLAGS='-fPIC -DPIC'
  259. LIB_LDFLAGS='-shared -Wl,+h,$$out'
  260. LIB_LDFLAGS_INSTALL_NAME=''
  261. LIB_PREFIX='lib'
  262. LIB_SUFFIX='.${LIB_MAJOR}'
  263. LINK_LIB='&& rm -f $${out%%.*}.sl && ${LN_S} $$out $${out%%.*}.sl'
  264. LDFLAGS_RPATH='-Wl,+b,${libdir}'
  265. PLUGIN_CFLAGS='-fPIC -DPIC'
  266. PLUGIN_LDFLAGS='-shared'
  267. PLUGIN_SUFFIX='.sl'
  268. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  269. INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i && ${LN_S} -f $$i ${DESTDIR}${libdir}/$${i%%.*}.sl'
  270. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%%.*}.sl'
  271. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  272. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  273. CLEAN_LIB=''
  274. ;;
  275. ia64*-*-hpux*)
  276. AC_MSG_RESULT([HP-UX (Itanium)])
  277. LIB_CFLAGS='-fPIC -DPIC'
  278. LIB_LDFLAGS='-shared -Wl,+h,$$out'
  279. LIB_LDFLAGS_INSTALL_NAME=''
  280. LIB_PREFIX='lib'
  281. LIB_SUFFIX='.${LIB_MAJOR}'
  282. LINK_LIB='&& rm -f $${out%%.*}.so && ${LN_S} $$out $${out%%.*}.so'
  283. LDFLAGS_RPATH='-Wl,+b,${libdir}'
  284. PLUGIN_CFLAGS='-fPIC -DPIC'
  285. PLUGIN_LDFLAGS='-shared'
  286. PLUGIN_SUFFIX='.so'
  287. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  288. INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i && ${LN_S} -f $$i ${DESTDIR}${libdir}/$${i%%.*}.so'
  289. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%%.*}.so'
  290. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  291. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  292. CLEAN_LIB=''
  293. ;;
  294. *)
  295. AC_MSG_RESULT(ELF)
  296. LIB_CFLAGS='-fPIC -DPIC'
  297. LIB_LDFLAGS='-shared -Wl,-soname=$$out.${LIB_MAJOR}'
  298. LIB_LDFLAGS_INSTALL_NAME=''
  299. LIB_PREFIX='lib'
  300. LIB_SUFFIX='.so'
  301. LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
  302. PLUGIN_CFLAGS='-fPIC -DPIC'
  303. PLUGIN_LDFLAGS='-shared'
  304. PLUGIN_SUFFIX='.so'
  305. LINK_PLUGIN='${LD} -o $$out ${PLUGIN_OBJS} ${PLUGIN_OBJS_EXTRA} ${PLUGIN_LDFLAGS} ${LDFLAGS} ${LIBS}'
  306. 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'
  307. UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
  308. INSTALL_PLUGIN='&& ${INSTALL} -m 755 $$i ${DESTDIR}${plugindir}/$$i'
  309. UNINSTALL_PLUGIN='&& rm -f ${DESTDIR}${plugindir}/$$i'
  310. CLEAN_LIB=''
  311. ;;
  312. esac
  313. AC_SUBST(LIB_CFLAGS)
  314. AC_SUBST(LIB_LDFLAGS)
  315. AC_SUBST(LIB_LDFLAGS_INSTALL_NAME)
  316. AC_SUBST(LIB_PREFIX)
  317. AC_SUBST(LIB_SUFFIX)
  318. AC_SUBST(LINK_LIB)
  319. AC_SUBST(LDFLAGS_RPATH)
  320. AC_SUBST(PLUGIN_CFLAGS)
  321. AC_SUBST(PLUGIN_LDFLAGS)
  322. AC_SUBST(PLUGIN_SUFFIX)
  323. AC_SUBST(LINK_PLUGIN)
  324. AC_SUBST(INSTALL_LIB)
  325. AC_SUBST(UNINSTALL_LIB)
  326. AC_SUBST(INSTALL_PLUGIN)
  327. AC_SUBST(UNINSTALL_PLUGIN)
  328. AC_SUBST(CLEAN_LIB)
  329. ])
  330. AC_DEFUN([BUILDSYS_FRAMEWORK], [
  331. AC_REQUIRE([AC_CANONICAL_HOST])
  332. AC_REQUIRE([BUILDSYS_CHECK_IOS])
  333. AC_REQUIRE([BUILDSYS_SHARED_LIB])
  334. AC_CHECK_TOOL(CODESIGN, codesign)
  335. case "$host_os" in
  336. darwin*)
  337. AS_IF([test x"$host_is_ios" = x"yes"], [
  338. FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
  339. FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/Frameworks/$$out/$${out%.framework}'
  340. ], [
  341. FRAMEWORK_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
  342. FRAMEWORK_LDFLAGS_INSTALL_NAME='-Wl,-install_name,@executable_path/../Frameworks/$$out/$${out%.framework}'
  343. ])
  344. AC_SUBST(FRAMEWORK_LDFLAGS)
  345. AC_SUBST(FRAMEWORK_LDFLAGS_INSTALL_NAME)
  346. AC_SUBST(FRAMEWORK_LIBS)
  347. $1
  348. ;;
  349. esac
  350. ])