mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-01-27 01:27:21 +08:00
67c600b995
Commit 754f8def0dfeeb43afa5a96ad1971fd0ef02c419 ("libgloss: merge stub arch configure scripts up a level") had an unintended side-effect: the MULTI* variables in the Makefiles no longer get rewritten at configure time in the subdirs. Only the top-level Makefile still is. This is because the configure integration of multilib (both the way libgloss did it manually and the way AM_ENABLE_MULTILIB does it) only rewrites "Makefile". We could try propagating the MULTI* variables from libgloss/Makefile down via FLAGS_TO_PASS, but this runs into a limitation: the multilib logic uses this variable to switch from libgloss/ to each multilib libgloss/, and libgloss uses this variable to enter subdirectories. The latter we want, but the former ends up overridding the Makefile environment. We could side-step that with some GNU Make directives, but it feels like we're getting a bit too deep down the rabbit hole. Instead, let's call config-ml.in ourselves for each subdir Makefile that the top-level configure generates. This restores the previous behavior and should be less risky in general. This logic should be unnecessary when/if we switch libgloss over to a non-recursive Automake build (since all build+install settings are in the single libgloss/Makefile), but it'll be a while before we can land that rework, so let's fix this up now.
350 lines
8.2 KiB
Plaintext
350 lines
8.2 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT([libgloss],[LIBGLOSS_VERSION])
|
|
AC_CONFIG_HEADER(config.h)
|
|
|
|
if test "${enable_shared}" = "yes" ; then
|
|
AC_MSG_WARN([Shared libraries not supported for cross compiling, ignored])
|
|
fi
|
|
|
|
AC_CONFIG_AUX_DIR(..)
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
AM_INIT_AUTOMAKE([foreign no-define 1.15])
|
|
|
|
if test -z "${with_multisubdir}" ; then
|
|
AC_CONFIG_FILES([doc/Makefile])
|
|
fi
|
|
|
|
AC_NO_EXECUTABLES
|
|
|
|
dnl indicates whether to run configure within the testsuite subdirectory
|
|
config_testsuite=true
|
|
|
|
dnl indicates whether to run configure within the libnosys subdirectory
|
|
config_libnosys=true
|
|
|
|
host_makefile_frag=${srcdir}/config/default.mh
|
|
target_makefile_frag=${srcdir}/config/default.mt
|
|
|
|
case "${target}" in
|
|
aarch64*-*-*)
|
|
AC_CONFIG_SUBDIRS(aarch64)
|
|
config_testsuite=true
|
|
;;
|
|
arc*-*-*)
|
|
AC_CONFIG_FILES([arc/Makefile])
|
|
subdirs="$subdirs arc"
|
|
;;
|
|
csky*-*-*)
|
|
AC_CONFIG_SUBDIRS(csky)
|
|
;;
|
|
epiphany-*-*)
|
|
AC_CONFIG_FILES([epiphany/Makefile])
|
|
subdirs="$subdirs epiphany"
|
|
config_testsuite=true
|
|
;;
|
|
i[[3456]]86-*-elf* | i[[3456]]86-*-coff*)
|
|
AC_CONFIG_SUBDIRS([i386])
|
|
;;
|
|
m32r-*-*)
|
|
AC_CONFIG_FILES([m32r/Makefile])
|
|
subdirs="$subdirs m32r"
|
|
;;
|
|
m68hc11-*-* | m6811-*-* | m68hc12-*-* | m6812-*-*)
|
|
AC_CONFIG_FILES([m68hc11/Makefile])
|
|
subdirs="$subdirs m68hc11"
|
|
;;
|
|
nds32*-*-*)
|
|
AC_CONFIG_FILES([nds32/Makefile])
|
|
subdirs="$subdirs nds32"
|
|
;;
|
|
fido-*-* | m68*-*-*)
|
|
AC_CONFIG_SUBDIRS([m68k])
|
|
;;
|
|
hppa*-*-pro*)
|
|
AC_CONFIG_FILES([pa/Makefile])
|
|
subdirs="$subdirs pa"
|
|
;;
|
|
i960-*-coff)
|
|
AC_CONFIG_FILES([i960/Makefile])
|
|
subdirs="$subdirs i960"
|
|
;;
|
|
sparc-*leon*-elf* | sparc-*leon*-none*)
|
|
AC_CONFIG_FILES([sparc_leon/Makefile])
|
|
subdirs="$subdirs sparc_leon"
|
|
;;
|
|
sparclet-*-aout* | sparc-*-elf* | sparc64-*-elf* | sparc86x-*-* | sparclite-*-*)
|
|
AC_CONFIG_SUBDIRS([sparc])
|
|
;;
|
|
sh*-*-pe | mips*-*-pe | *arm*-wince-pe)
|
|
AC_CONFIG_SUBDIRS([wince])
|
|
;;
|
|
mips*-*-*)
|
|
AC_CONFIG_SUBDIRS([mips])
|
|
;;
|
|
riscv*-*-*)
|
|
AC_CONFIG_FILES([riscv/Makefile])
|
|
subdirs="$subdirs riscv"
|
|
;;
|
|
powerpc-*-*|powerpcle-*-*)
|
|
AC_CONFIG_FILES([rs6000/Makefile])
|
|
subdirs="$subdirs rs6000"
|
|
host_makefile_frag=${srcdir}/config/ppc.mh
|
|
;;
|
|
mn10200-*-*)
|
|
AC_CONFIG_SUBDIRS([mn10200])
|
|
;;
|
|
mn10300-*-*)
|
|
AC_CONFIG_SUBDIRS([mn10300])
|
|
;;
|
|
bfin-*-*)
|
|
AC_CONFIG_FILES([bfin/Makefile])
|
|
subdirs="$subdirs bfin"
|
|
;;
|
|
cr16-*-*)
|
|
AC_CONFIG_FILES([cr16/Makefile])
|
|
subdirs="$subdirs cr16"
|
|
;;
|
|
cris-*-* | crisv32-*-*)
|
|
AC_CONFIG_FILES([cris/Makefile])
|
|
subdirs="$subdirs cris"
|
|
;;
|
|
crx-*-*)
|
|
AC_CONFIG_FILES([crx/Makefile])
|
|
subdirs="$subdirs crx"
|
|
;;
|
|
d30v-*-*)
|
|
AC_CONFIG_FILES([d30v/Makefile])
|
|
subdirs="$subdirs d30v"
|
|
;;
|
|
fr30-*-*)
|
|
AC_CONFIG_FILES([fr30/Makefile])
|
|
subdirs="$subdirs fr30"
|
|
;;
|
|
frv*-*-*)
|
|
AC_CONFIG_FILES([frv/Makefile])
|
|
subdirs="$subdirs frv"
|
|
;;
|
|
ft32*-*-*)
|
|
AC_CONFIG_FILES([ft32/Makefile])
|
|
subdirs="$subdirs ft32"
|
|
;;
|
|
lm32*-*-*)
|
|
AC_CONFIG_FILES([lm32/Makefile])
|
|
subdirs="$subdirs lm32"
|
|
;;
|
|
mcore-*-*)
|
|
AC_CONFIG_SUBDIRS([mcore])
|
|
;;
|
|
mep-*-*)
|
|
AC_CONFIG_FILES([mep/Makefile])
|
|
subdirs="$subdirs mep"
|
|
;;
|
|
moxie-*-*)
|
|
AC_CONFIG_SUBDIRS([moxie])
|
|
;;
|
|
microblaze*-*-*)
|
|
AC_CONFIG_FILES([microblaze/Makefile])
|
|
subdirs="$subdirs microblaze"
|
|
;;
|
|
mt-*-*)
|
|
AC_CONFIG_FILES([mt/Makefile])
|
|
subdirs="$subdirs mt"
|
|
;;
|
|
v850*-*-*)
|
|
AC_CONFIG_FILES([v850/Makefile])
|
|
subdirs="$subdirs v850"
|
|
;;
|
|
visium-*-*)
|
|
AC_CONFIG_FILES([visium/Makefile])
|
|
subdirs="$subdirs visium"
|
|
config_testsuite=false
|
|
;;
|
|
xc16x-*-*)
|
|
AC_CONFIG_FILES([xc16x/Makefile])
|
|
subdirs="$subdirs xc16x"
|
|
target_makefile_frag=${srcdir}/config/xc16x.mt
|
|
;;
|
|
xstormy16-*-*)
|
|
AC_CONFIG_FILES([xstormy16/Makefile])
|
|
subdirs="$subdirs xstormy16"
|
|
;;
|
|
m32c-*-*)
|
|
AC_CONFIG_FILES([m32c/Makefile])
|
|
subdirs="$subdirs m32c"
|
|
;;
|
|
msp430-*-elf*)
|
|
AC_CONFIG_FILES([msp430/Makefile])
|
|
subdirs="$subdirs msp430"
|
|
config_libnosys=false
|
|
;;
|
|
rl78*-*-elf)
|
|
AC_CONFIG_FILES([rl78/Makefile])
|
|
subdirs="$subdirs rl78"
|
|
;;
|
|
rx*-*-elf)
|
|
AC_CONFIG_FILES([rx/Makefile])
|
|
subdirs="$subdirs rx"
|
|
;;
|
|
arm*-*-elf | arm*-*-coff | arm*-*-*)
|
|
AC_CONFIG_SUBDIRS([arm])
|
|
;;
|
|
spu-*-elf)
|
|
AC_CONFIG_FILES([spu/Makefile])
|
|
subdirs="$subdirs spu"
|
|
host_makefile_frag=${srcdir}/config/ppc.mh
|
|
config_testsuite=false
|
|
config_libnosys=false
|
|
;;
|
|
tic6x-*-*)
|
|
AC_CONFIG_FILES([tic6x/Makefile])
|
|
subdirs="$subdirs tic6x"
|
|
config_testsuite=false
|
|
;;
|
|
iq2000-*-*)
|
|
AC_CONFIG_FILES([iq2000/Makefile])
|
|
subdirs="$subdirs iq2000"
|
|
;;
|
|
or1k-*-* | or1knd-*-* )
|
|
AC_CONFIG_FILES([or1k/Makefile])
|
|
subdirs="$subdirs or1k"
|
|
;;
|
|
pru-*-*)
|
|
AC_CONFIG_FILES([pru/Makefile])
|
|
subdirs="$subdirs pru"
|
|
;;
|
|
nios2-*-*)
|
|
AC_CONFIG_FILES([nios2/Makefile])
|
|
subdirs="$subdirs nios2"
|
|
;;
|
|
esac
|
|
|
|
dnl For now, don't bother configuring testsuite
|
|
dnl
|
|
dnl if test "${config_testsuite}" = "true";
|
|
dnl then AC_CONFIG_SUBDIRS([testsuite])
|
|
dnl fi
|
|
|
|
if test "${config_libnosys}" = "true"; then
|
|
AC_CONFIG_FILES([libnosys/Makefile])
|
|
subdirs="$subdirs libnosys"
|
|
fi
|
|
|
|
LIB_AC_PROG_CC
|
|
AS=${AS-as}
|
|
AC_SUBST(AS)
|
|
AC_CHECK_PROG(AR, ar, ar, :)
|
|
AR=${AR-ar}
|
|
AC_SUBST(AR)
|
|
LD=${LD-ld}
|
|
AC_SUBST(LD)
|
|
AC_PROG_RANLIB
|
|
LIB_AM_PROG_AS
|
|
|
|
AC_DEFINE(HAVE_GNU_LD, 1, [Using GNU LD])
|
|
|
|
AC_CACHE_CHECK([if target is ELF], libc_cv_is_elf, [dnl
|
|
AC_PREPROC_IFELSE([AC_LANG_PROGRAM(
|
|
[[#ifndef __ELF__
|
|
# error "not ELF"
|
|
#endif
|
|
]])], [libc_cv_is_elf=yes], [libc_cv_is_elf=no])
|
|
])
|
|
if test "x${libc_cv_is_elf}" = "xyes"; then
|
|
AC_DEFINE(HAVE_ELF, 1, [Using ELF format])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for .previous assembler directive],
|
|
libc_cv_asm_previous_directive, [dnl
|
|
libc_cv_asm_previous_directive=no
|
|
cat > conftest.s <<EOF
|
|
.section foo_section
|
|
.previous
|
|
EOF
|
|
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
|
|
libc_cv_asm_previous_directive=yes
|
|
fi
|
|
rm -f conftest*])
|
|
if test "x${libc_cv_asm_previous_directive}" = "xyes"; then
|
|
AC_DEFINE(HAVE_ASM_PREVIOUS_DIRECTIVE, 1, [.previous directive allowed])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for .popsection assembler directive],
|
|
libc_cv_asm_popsection_directive, [dnl
|
|
libc_cv_asm_popsection_directive=no
|
|
cat > conftest.s <<EOF
|
|
.pushsection foo_section
|
|
.popsection
|
|
EOF
|
|
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.s 1>&AC_FD_CC); then
|
|
libc_cv_asm_popsection_directive=yes
|
|
fi
|
|
rm -f conftest*])
|
|
if test "x${libc_cv_asm_popsection_directive}" = "xyes"; then
|
|
AC_DEFINE(HAVE_ASM_POPSECTION_DIRECTIVE, 1, [.pushsection/.popsection directives allowed])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for section attributes],
|
|
libc_cv_section_attributes, [dnl
|
|
libc_cv_section_attributes=no
|
|
cat > conftest.c <<EOF
|
|
int secttest __attribute__ ((section (".gnu.warning.secttest"))) = 10;
|
|
int main() {}
|
|
EOF
|
|
if AC_TRY_COMMAND(${CC-cc} -c $CFLAGS conftest.c 1>&AC_FD_CC); then
|
|
libc_cv_section_attributes=yes
|
|
fi
|
|
rm -f conftest*])
|
|
if test "x${libc_cv_section_attributes}" = "xyes"; then
|
|
AC_DEFINE(HAVE_SECTION_ATTRIBUTES, 1, [support for section attributes])
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for symbol prefix], libc_cv_symbol_prefix, [dnl
|
|
cat > conftest.c <<\EOF
|
|
foo () { }
|
|
EOF
|
|
dnl
|
|
libc_cv_symbol_prefix=''
|
|
if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "\$foo" > /dev/null]); then
|
|
libc_cv_symbol_prefix='$'
|
|
else
|
|
if AC_TRY_COMMAND([${CC-cc} -S conftest.c -o - | fgrep "_foo" > /dev/null]); then
|
|
libc_cv_symbol_prefix=_
|
|
fi
|
|
fi
|
|
rm -f conftest* ])
|
|
AC_DEFINE_UNQUOTED(__SYMBOL_PREFIX, "$libc_cv_symbol_prefix", [symbol prefix])
|
|
|
|
m4_include([libnosys/acinclude.m4])
|
|
|
|
dnl We have to assign the same value to other variables because autoconf
|
|
dnl doesn't provide a mechanism to substitute a replacement keyword with
|
|
dnl arbitrary data or pathnames.
|
|
dnl
|
|
host_makefile_frag_path=$host_makefile_frag
|
|
AC_SUBST(host_makefile_frag_path)
|
|
AC_SUBST_FILE(host_makefile_frag)
|
|
target_makefile_frag_path=$target_makefile_frag
|
|
AC_SUBST(target_makefile_frag_path)
|
|
AC_SUBST_FILE(target_makefile_frag)
|
|
|
|
dnl AM_ENABLE_MULTILIB only processes the top-level Makefile, but we want the
|
|
dnl multilib settings to propagate to all sub-Makefiles that we recurse into
|
|
dnl too. This can go away if we ever get rid of sub-Makefiles and only use
|
|
dnl Automake + makefile include fragments.
|
|
AC_OUTPUT_COMMANDS([
|
|
for subdir in $subdirs; do
|
|
case " $CONFIG_FILES " in
|
|
*" $subdir/Makefile "*)
|
|
ac_file=$subdir/Makefile . ${multi_basedir}/config-ml.in
|
|
;;
|
|
esac
|
|
done], [subdirs="$subdirs"])
|
|
|
|
AM_ENABLE_MULTILIB(, ..)
|
|
|
|
AC_CONFIG_FILES([Makefile])
|
|
AC_OUTPUT
|