configure.ac 14 KB

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