configure.ac 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. dnl Process this file with autoconf to produce a configure script.
  2. dnl
  3. dnl Copyright (C) 2012-2022 Free Software Foundation, Inc.
  4. dnl
  5. dnl This file is free software; you can redistribute it and/or modify
  6. dnl it under the terms of the GNU General Public License as published by
  7. dnl the Free Software Foundation; either version 3 of the License, or
  8. dnl (at your option) any later version.
  9. dnl
  10. dnl This program is distributed in the hope that it will be useful,
  11. dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. dnl GNU General Public License for more details.
  14. dnl
  15. dnl You should have received a copy of the GNU General Public License
  16. dnl along with this program; see the file COPYING3. If not see
  17. dnl <http://www.gnu.org/licenses/>.
  18. dnl
  19. m4_include([../bfd/version.m4])
  20. AC_INIT([opcodes], BFD_VERSION)
  21. AC_CONFIG_SRCDIR([z8k-dis.c])
  22. AC_CANONICAL_TARGET
  23. AM_INIT_AUTOMAKE
  24. AM_SILENT_RULES([yes])
  25. AC_PROG_CC
  26. AC_GNU_SOURCE
  27. AC_USE_SYSTEM_EXTENSIONS
  28. dnl These must be called before LT_INIT, because it may want
  29. dnl to call AC_CHECK_PROG.
  30. AC_CHECK_TOOL(AR, ar)
  31. AC_CHECK_TOOL(RANLIB, ranlib, :)
  32. dnl Default to a non shared library. This may be overridden by the
  33. dnl configure option --enable-shared.
  34. AC_DISABLE_SHARED
  35. LT_INIT
  36. ac_checking=
  37. . ${srcdir}/../bfd/development.sh
  38. test "$development" = true && ac_checking=yes
  39. AC_ARG_ENABLE(checking,
  40. [ --enable-checking enable run-time checks],
  41. [case "${enableval}" in
  42. no|none) ac_checking= ;;
  43. *) ac_checking=yes ;;
  44. esac])dnl
  45. if test x$ac_checking != x ; then
  46. AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
  47. fi
  48. AC_ARG_ENABLE(targets,
  49. [ --enable-targets alternative target configurations],
  50. [case "${enableval}" in
  51. yes | "") AC_MSG_ERROR([enable-targets option must specify target names or 'all'])
  52. ;;
  53. no) enable_targets= ;;
  54. *) enable_targets=$enableval ;;
  55. esac])dnl
  56. AM_BINUTILS_WARNINGS
  57. AC_CONFIG_HEADERS(config.h:config.in)
  58. # PR 14072
  59. AH_VERBATIM([00_CONFIG_H_CHECK],
  60. [/* Check that config.h is #included before system headers
  61. (this works only for glibc, but that should be enough). */
  62. #if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
  63. # error config.h must be #included before system headers
  64. #endif
  65. #define __CONFIG_H__ 1])
  66. if test -z "$target" ; then
  67. AC_MSG_ERROR(Unrecognized target system type; please check config.sub.)
  68. fi
  69. AM_MAINTAINER_MODE
  70. AM_INSTALL_LIBBFD
  71. AC_EXEEXT
  72. # host-specific stuff:
  73. ALL_LINGUAS="da de es fi fr ga id it nl pt_BR ro sr sv tr uk vi zh_CN"
  74. ZW_GNU_GETTEXT_SISTER_DIR
  75. AM_PO_SUBDIRS
  76. . ${srcdir}/../bfd/configure.host
  77. BFD_CC_FOR_BUILD
  78. BFD_64_BIT
  79. AC_SUBST(HDEFINES)
  80. AC_PROG_INSTALL
  81. AC_CHECK_DECLS([basename, stpcpy])
  82. # Check if sigsetjmp is available. Using AC_CHECK_FUNCS won't do
  83. # since sigsetjmp might only be defined as a macro.
  84. AC_CACHE_CHECK([for sigsetjmp], gdb_cv_func_sigsetjmp,
  85. [AC_TRY_COMPILE([
  86. #include <setjmp.h>
  87. ], [sigjmp_buf env; while (! sigsetjmp (env, 1)) siglongjmp (env, 1);],
  88. bfd_cv_func_sigsetjmp=yes, bfd_cv_func_sigsetjmp=no)])
  89. if test $bfd_cv_func_sigsetjmp = yes; then
  90. AC_DEFINE(HAVE_SIGSETJMP, 1, [Define if sigsetjmp is available. ])
  91. fi
  92. cgen_maint=no
  93. cgendir='$(srcdir)/../cgen'
  94. AC_ARG_ENABLE(cgen-maint,
  95. [ --enable-cgen-maint[=dir] build cgen generated files],
  96. [case "${enableval}" in
  97. yes) cgen_maint=yes ;;
  98. no) cgen_maint=no ;;
  99. *)
  100. # Argument is a directory where cgen can be found. In some
  101. # future world cgen could be installable, but right now this
  102. # is not the case. Instead we assume the directory is a path
  103. # to the cgen source tree.
  104. cgen_maint=yes
  105. if test -r ${enableval}/iformat.scm; then
  106. # This looks like a cgen source tree.
  107. cgendir=${enableval}
  108. else
  109. AC_MSG_ERROR(${enableval} doesn't look like a cgen source tree)
  110. fi
  111. ;;
  112. esac])dnl
  113. AM_CONDITIONAL(CGEN_MAINT, test x${cgen_maint} = xyes)
  114. AC_SUBST(cgendir)
  115. using_cgen=no
  116. # Check if linker supports --as-needed and --no-as-needed options
  117. AC_CACHE_CHECK(linker --as-needed support, bfd_cv_ld_as_needed,
  118. [bfd_cv_ld_as_needed=no
  119. if $LD --help 2>/dev/null | grep as-needed > /dev/null; then
  120. bfd_cv_ld_as_needed=yes
  121. fi
  122. ])
  123. LT_LIB_M
  124. #Libs for generator progs
  125. if test "x$cross_compiling" = "xno"; then
  126. BUILD_LIBS=../libiberty/libiberty.a
  127. BUILD_LIB_DEPS=$BUILD_LIBS
  128. else
  129. # if cross-compiling, assume that the system provides -liberty
  130. # and that the version is compatible with new headers.
  131. BUILD_LIBS=-liberty
  132. BUILD_LIB_DEPS=
  133. fi
  134. BUILD_LIBS="$BUILD_LIBS $LIBINTL"
  135. BUILD_LIB_DEPS="$BUILD_LIB_DEPS $LIBINTL_DEP"
  136. AC_SUBST(BUILD_LIBS)
  137. AC_SUBST(BUILD_LIB_DEPS)
  138. # Horrible hacks to build DLLs on Windows and a shared library elsewhere.
  139. SHARED_LDFLAGS=
  140. SHARED_LIBADD=
  141. SHARED_DEPENDENCIES=
  142. if test "$enable_shared" = "yes"; then
  143. # When building a shared libopcodes, link against the pic version of libiberty
  144. # so that apps that use libopcodes won't need libiberty just to satisfy any
  145. # libopcodes references.
  146. # We can't do that if a pic libiberty is unavailable since including non-pic
  147. # code would insert text relocations into libopcodes.
  148. # Note that linking against libbfd as we do here, which is itself linked
  149. # against libiberty, may not satisfy all the libopcodes libiberty references
  150. # since libbfd may not pull in the entirety of libiberty.
  151. # Also, jam libintl into the right place in all of this: after libiberty,
  152. # which uses it, but before -lcygwin, which it uses.
  153. changequote(,)dnl
  154. x=`sed -n -e 's/^[ ]*PICFLAG[ ]*=[ ]*//p' < ../libiberty/Makefile | sed -n '$p'`
  155. changequote([,])dnl
  156. if test -n "$x"; then
  157. SHARED_LIBADD="-L`pwd`/../libiberty/pic -liberty"
  158. fi
  159. fi
  160. SHARED_LIBADD="$SHARED_LIBADD $LIBINTL"
  161. if test "$enable_shared" = "yes"; then
  162. case "${host}" in
  163. *-*-cygwin*)
  164. SHARED_LDFLAGS="-no-undefined"
  165. SHARED_LIBADD="-L`pwd`/../bfd -lbfd -L`pwd`/../libiberty -liberty $SHARED_LIBADD"
  166. ;;
  167. *)
  168. SHARED_LIBADD="../bfd/libbfd.la ${SHARED_LIBADD}"
  169. SHARED_DEPENDENCIES="../bfd/libbfd.la"
  170. ;;
  171. esac
  172. if test -n "$SHARED_LIBADD"; then
  173. if test -n "$LIBM"; then
  174. if test x"$bfd_cv_ld_as_needed" = xyes; then
  175. # Link against libm only when needed. Put -lc, -lm inside -Wl
  176. # to stop libtool reordering these options.
  177. SHARED_LIBADD="$SHARED_LIBADD -Wl,-lc,--as-needed,`echo $LIBM | sed 's/ /,/g'`,--no-as-needed"
  178. else
  179. SHARED_LIBADD="$SHARED_LIBADD $LIBM"
  180. fi
  181. fi
  182. fi
  183. fi
  184. AC_SUBST(SHARED_LDFLAGS)
  185. AC_SUBST(SHARED_LIBADD)
  186. AC_SUBST(SHARED_DEPENDENCIES)
  187. # target-specific stuff:
  188. # Canonicalize the secondary target names.
  189. if test -n "$enable_targets" ; then
  190. for targ in `echo $enable_targets | sed 's/,/ /g'`
  191. do
  192. result=`$ac_config_sub $targ 2>/dev/null`
  193. if test -n "$result" ; then
  194. canon_targets="$canon_targets $result"
  195. else
  196. # Allow targets that config.sub doesn't recognize, like "all".
  197. canon_targets="$canon_targets $targ"
  198. fi
  199. done
  200. fi
  201. all_targets=false
  202. selarchs=
  203. for targ in $target $canon_targets
  204. do
  205. if test "x$targ" = "xall" ; then
  206. all_targets=true
  207. else
  208. . $srcdir/../bfd/config.bfd
  209. selarchs="$selarchs $targ_archs"
  210. fi
  211. done
  212. # Utility var, documents generic cgen support files.
  213. cgen_files="cgen-opc.lo cgen-asm.lo cgen-dis.lo cgen-bitset.lo"
  214. # We don't do any links based on the target system, just makefile config.
  215. if test x${all_targets} = xfalse ; then
  216. # Target architecture .o files.
  217. ta=
  218. for arch in $selarchs
  219. do
  220. ad=`echo $arch | sed -e s/bfd_//g -e s/_arch//g`
  221. archdefs="$archdefs -DARCH_$ad"
  222. case "$arch" in
  223. bfd_aarch64_arch) ta="$ta aarch64-asm.lo aarch64-dis.lo aarch64-opc.lo aarch64-asm-2.lo aarch64-dis-2.lo aarch64-opc-2.lo" ;;
  224. bfd_alpha_arch) ta="$ta alpha-dis.lo alpha-opc.lo" ;;
  225. bfd_amdgcn_arch) ;;
  226. bfd_arc_arch) ta="$ta arc-dis.lo arc-opc.lo arc-ext.lo" ;;
  227. bfd_arm_arch) ta="$ta arm-dis.lo" ;;
  228. bfd_avr_arch) ta="$ta avr-dis.lo" ;;
  229. bfd_bfin_arch) ta="$ta bfin-dis.lo" ;;
  230. bfd_cr16_arch) ta="$ta cr16-dis.lo cr16-opc.lo" ;;
  231. bfd_cris_arch) ta="$ta cris-desc.lo cris-dis.lo cris-opc.lo cgen-bitset.lo" ;;
  232. bfd_crx_arch) ta="$ta crx-dis.lo crx-opc.lo" ;;
  233. bfd_csky_arch) ta="$ta csky-dis.lo" ;;
  234. bfd_d10v_arch) ta="$ta d10v-dis.lo d10v-opc.lo" ;;
  235. bfd_d30v_arch) ta="$ta d30v-dis.lo d30v-opc.lo" ;;
  236. bfd_dlx_arch) ta="$ta dlx-dis.lo" ;;
  237. bfd_fr30_arch) ta="$ta fr30-asm.lo fr30-desc.lo fr30-dis.lo fr30-ibld.lo fr30-opc.lo" using_cgen=yes ;;
  238. bfd_frv_arch) ta="$ta frv-asm.lo frv-desc.lo frv-dis.lo frv-ibld.lo frv-opc.lo" using_cgen=yes ;;
  239. bfd_ft32_arch) ta="$ta ft32-opc.lo ft32-dis.lo" ;;
  240. bfd_moxie_arch) ta="$ta moxie-dis.lo moxie-opc.lo" ;;
  241. bfd_h8300_arch) ta="$ta h8300-dis.lo" ;;
  242. bfd_hppa_arch) ta="$ta hppa-dis.lo" ;;
  243. bfd_i386_arch|bfd_iamcu_arch)
  244. ta="$ta i386-dis.lo i386-opc.lo" ;;
  245. bfd_ia64_arch) ta="$ta ia64-dis.lo ia64-opc.lo" ;;
  246. bfd_ip2k_arch) ta="$ta ip2k-asm.lo ip2k-desc.lo ip2k-dis.lo ip2k-ibld.lo ip2k-opc.lo" using_cgen=yes ;;
  247. bfd_epiphany_arch) ta="$ta epiphany-asm.lo epiphany-desc.lo epiphany-dis.lo epiphany-ibld.lo epiphany-opc.lo" using_cgen=yes ;;
  248. bfd_iq2000_arch) ta="$ta iq2000-asm.lo iq2000-desc.lo iq2000-dis.lo iq2000-ibld.lo iq2000-opc.lo" using_cgen=yes ;;
  249. bfd_lm32_arch) ta="$ta lm32-asm.lo lm32-desc.lo lm32-dis.lo lm32-ibld.lo lm32-opc.lo lm32-opinst.lo" using_cgen=yes ;;
  250. bfd_m32c_arch) ta="$ta m32c-asm.lo m32c-desc.lo m32c-dis.lo m32c-ibld.lo m32c-opc.lo" using_cgen=yes ;;
  251. bfd_m32r_arch) ta="$ta m32r-asm.lo m32r-desc.lo m32r-dis.lo m32r-ibld.lo m32r-opc.lo m32r-opinst.lo" using_cgen=yes ;;
  252. bfd_m68hc11_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
  253. bfd_m68hc12_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
  254. bfd_m9s12x_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
  255. bfd_m9s12xg_arch) ta="$ta m68hc11-dis.lo m68hc11-opc.lo" ;;
  256. bfd_s12z_arch) ta="$ta s12z-dis.lo s12z-opc.lo" ;;
  257. bfd_m68k_arch) ta="$ta m68k-dis.lo m68k-opc.lo" ;;
  258. bfd_mcore_arch) ta="$ta mcore-dis.lo" ;;
  259. bfd_mep_arch) ta="$ta mep-asm.lo mep-desc.lo mep-dis.lo mep-ibld.lo mep-opc.lo" using_cgen=yes ;;
  260. bfd_metag_arch) ta="$ta metag-dis.lo" ;;
  261. bfd_microblaze_arch) ta="$ta microblaze-dis.lo" ;;
  262. bfd_mips_arch) ta="$ta mips-dis.lo mips-opc.lo mips16-opc.lo micromips-opc.lo" ;;
  263. bfd_mmix_arch) ta="$ta mmix-dis.lo mmix-opc.lo" ;;
  264. bfd_mn10200_arch) ta="$ta m10200-dis.lo m10200-opc.lo" ;;
  265. bfd_mn10300_arch) ta="$ta m10300-dis.lo m10300-opc.lo" ;;
  266. bfd_mt_arch) ta="$ta mt-asm.lo mt-desc.lo mt-dis.lo mt-ibld.lo mt-opc.lo" using_cgen=yes ;;
  267. bfd_msp430_arch) ta="$ta msp430-dis.lo msp430-decode.lo" ;;
  268. bfd_nds32_arch) ta="$ta nds32-asm.lo nds32-dis.lo" ;;
  269. bfd_nfp_arch) ta="$ta nfp-dis.lo" ;;
  270. bfd_nios2_arch) ta="$ta nios2-dis.lo nios2-opc.lo" ;;
  271. bfd_ns32k_arch) ta="$ta ns32k-dis.lo" ;;
  272. bfd_or1k_arch) ta="$ta or1k-asm.lo or1k-desc.lo or1k-dis.lo or1k-ibld.lo or1k-opc.lo" using_cgen=yes ;;
  273. bfd_pdp11_arch) ta="$ta pdp11-dis.lo pdp11-opc.lo" ;;
  274. bfd_pj_arch) ta="$ta pj-dis.lo pj-opc.lo" ;;
  275. bfd_powerpc_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
  276. bfd_powerpc_64_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
  277. bfd_pru_arch) ta="$ta pru-dis.lo pru-opc.lo" ;;
  278. bfd_pyramid_arch) ;;
  279. bfd_romp_arch) ;;
  280. bfd_riscv_arch) ta="$ta riscv-dis.lo riscv-opc.lo" ;;
  281. bfd_rs6000_arch) ta="$ta ppc-dis.lo ppc-opc.lo" ;;
  282. bfd_rl78_arch) ta="$ta rl78-dis.lo rl78-decode.lo";;
  283. bfd_rx_arch) ta="$ta rx-dis.lo rx-decode.lo";;
  284. bfd_s390_arch) ta="$ta s390-dis.lo s390-opc.lo" ;;
  285. bfd_score_arch) ta="$ta score-dis.lo score7-dis.lo" ;;
  286. bfd_sh_arch) ta="$ta sh-dis.lo cgen-bitset.lo" ;;
  287. bfd_sparc_arch) ta="$ta sparc-dis.lo sparc-opc.lo" ;;
  288. bfd_spu_arch) ta="$ta spu-dis.lo spu-opc.lo" ;;
  289. bfd_tic30_arch) ta="$ta tic30-dis.lo" ;;
  290. bfd_tic4x_arch) ta="$ta tic4x-dis.lo" ;;
  291. bfd_tic54x_arch) ta="$ta tic54x-dis.lo tic54x-opc.lo" ;;
  292. bfd_tic6x_arch) ta="$ta tic6x-dis.lo" ;;
  293. bfd_tilegx_arch) ta="$ta tilegx-dis.lo tilegx-opc.lo" ;;
  294. bfd_tilepro_arch) ta="$ta tilepro-dis.lo tilepro-opc.lo" ;;
  295. bfd_v850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
  296. bfd_v850e_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
  297. bfd_v850ea_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
  298. bfd_v850_rh850_arch) ta="$ta v850-opc.lo v850-dis.lo" ;;
  299. bfd_vax_arch) ta="$ta vax-dis.lo" ;;
  300. bfd_visium_arch) ta="$ta visium-dis.lo visium-opc.lo" ;;
  301. bfd_wasm32_arch) ta="$ta wasm32-dis.lo" ;;
  302. bfd_xc16x_arch) ta="$ta xc16x-asm.lo xc16x-desc.lo xc16x-dis.lo xc16x-ibld.lo xc16x-opc.lo" using_cgen=yes ;;
  303. bfd_xgate_arch) ta="$ta xgate-dis.lo xgate-opc.lo" ;;
  304. bfd_xstormy16_arch) ta="$ta xstormy16-asm.lo xstormy16-desc.lo xstormy16-dis.lo xstormy16-ibld.lo xstormy16-opc.lo" using_cgen=yes ;;
  305. bfd_xtensa_arch) ta="$ta xtensa-dis.lo" ;;
  306. bfd_z80_arch) ta="$ta z80-dis.lo" ;;
  307. bfd_z8k_arch) ta="$ta z8k-dis.lo" ;;
  308. bfd_bpf_arch) ta="$ta bpf-asm.lo bpf-desc.lo bpf-dis.lo bpf-ibld.lo bpf-opc.lo" using_cgen=yes ;;
  309. bfd_loongarch_arch) ta="$ta loongarch-dis.lo loongarch-opc.lo loongarch-coder.lo" ;;
  310. "") ;;
  311. *) AC_MSG_ERROR(*** unknown target architecture $arch) ;;
  312. esac
  313. done
  314. if test $using_cgen = yes ; then
  315. ta="$ta $cgen_files"
  316. fi
  317. # Weed out duplicate .o files.
  318. f=""
  319. for i in $ta ; do
  320. case " $f " in
  321. *" $i "*) ;;
  322. *) f="$f $i" ;;
  323. esac
  324. done
  325. ta="$f"
  326. # And duplicate -D flags.
  327. f=""
  328. for i in $archdefs ; do
  329. case " $f " in
  330. *" $i "*) ;;
  331. *) f="$f $i" ;;
  332. esac
  333. done
  334. archdefs="$f"
  335. BFD_MACHINES="$ta"
  336. else # all_targets is true
  337. archdefs=-DARCH_all
  338. if test "$enable_64_bit_bfd" = "yes" ; then
  339. BFD_MACHINES='$(ALL32_MACHINES) $(ALL64_MACHINES)'
  340. else
  341. BFD_MACHINES='$(ALL32_MACHINES)'
  342. fi
  343. fi
  344. AC_SUBST(archdefs)
  345. AC_SUBST(BFD_MACHINES)
  346. AC_CONFIG_FILES([Makefile po/Makefile.in:po/Make-in])
  347. AC_OUTPUT
  348. GNU_MAKE_JOBSERVER