📄 configure.ac
字号:
*) AC_DEFINE(ECOS) CXXINCLUDES="-I${TARGET_ECOS}/include" addobjs="$addobjs ecos.lo" ;;esacAM_CONDITIONAL(CPLUSPLUS, test "${enable_cplusplus}" = yes)AC_SUBST(CXX)AC_SUBST(INCLUDES)AC_SUBST(CXXINCLUDES)# Configuration of shared libraries#AC_MSG_CHECKING(whether to build shared libraries)AC_ENABLE_SHAREDcase "$host" in alpha-*-openbsd*) enable_shared=no AC_MSG_RESULT(no) ;; *) AC_MSG_RESULT(yes) ;;esac# Configuration of machine-dependent code#AC_MSG_CHECKING(which machine-dependent code should be used) machdep=case "$host" in alpha-*-openbsd*) machdep="mach_dep.lo" if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then AC_MSG_WARN(OpenBSD/Alpha without dlopen(). Shared library support is disabled) fi ;; alpha*-*-linux*) machdep="mach_dep.lo" ;; i?86-*-solaris2.[[89]] | i?86-*-solaris2.1?) AC_DEFINE(SOLARIS25_PROC_VDB_BUG_FIXED) ;; mipstx39-*-elf*) machdep="mach_dep.lo" AC_DEFINE(STACKBASE, __stackbase) AC_DEFINE(DATASTART_IS_ETEXT) ;; mips-dec-ultrix*) machdep="mach-dep.lo" ;; mips-nec-sysv*|mips-unknown-sysv*) ;; mips*-*-linux*) ;; mips-*-*) machdep="mach_dep.lo" dnl AC_DEFINE(NO_EXECUTE_PERMISSION) dnl This is now redundant, but it is also important for incremental GC dnl performance under Irix. ;; sparc-*-netbsd*) machdep="mach_dep.lo sparc_netbsd_mach_dep.lo" ;; sparc-sun-solaris2.3) machdep="mach_dep.lo sparc_mach_dep.lo" AC_DEFINE(SUNOS53_SHARED_LIB) ;; sparc*-sun-solaris2.*) machdep="mach_dep.lo sparc_mach_dep.lo" ;; ia64-*-*) machdep="mach_dep.lo ia64_save_regs_in_stack.lo" ;;esacif test x"$machdep" = x; thenAC_MSG_RESULT($machdep) machdep="mach_dep.lo"fiaddobjs="$addobjs $machdep"AC_SUBST(addobjs)AC_SUBST(addlibs)AC_PROG_LIBTOOL## Check for AViiON Machines running DGUX#ac_is_dgux=noAC_CHECK_HEADER(sys/dg_sys_info.h,[ac_is_dgux=yes;]) ## :GOTCHA: we do not check anything but sys/dg_sys_info.hif test $ac_is_dgux = yes; then if test "$enable_full_debug" = "yes"; then CFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" CXXFLAGS="-g -mstandard -DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" else CFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" CXXFLAGS="-DDGUX -D_DGUX_SOURCE -Di386 -mno-legend -O2" fi AC_SUBST(CFLAGS) AC_SUBST(CXXFLAGS)fidnl We use these options to decide which functions to include.AC_ARG_WITH(target-subdir,[ --with-target-subdir=SUBDIR configuring with a cross compiler])AC_ARG_WITH(cross-host,[ --with-cross-host=HOST configuring with a cross compiler])# automake wants to see AC_EXEEXT. But we don't need it. And having# it is actually a problem, because the compiler we're passed can't# necessarily do a full link. So we fool automake here.if false; then # autoconf 2.50 runs AC_EXEEXT by default, and the macro expands # to nothing, so nothing would remain between `then' and `fi' if it # were not for the `:' below. : AC_EXEEXTfidnl As of 4.13a2, the collector will not properly work on Solaris whendnl built with gcc and -O. So we remove -O in the appropriate case.dnl Not needed anymore on Solaris.AC_MSG_CHECKING(whether Solaris gcc optimization fix is necessary)case "$host" in *aix*) if test "$GCC" = yes; then AC_MSG_RESULT(yes) new_CFLAGS= for i in $CFLAGS; do case "$i" in -O*) ;; *) new_CFLAGS="$new_CFLAGS $i" ;; esac done CFLAGS="$new_CFLAGS" else AC_MSG_RESULT(no) fi ;; *) AC_MSG_RESULT(no) ;;esacdnl Include defines that have become de facto standard.dnl ALL_INTERIOR_POINTERS can be overridden in startup code.AC_DEFINE(NO_EXECUTE_PERMISSION)AC_DEFINE(ALL_INTERIOR_POINTERS)dnl Interface Selectiondnl -------------------dnldnl By default, make the library as general as possible.dnl enable_gcj_support=noAC_ARG_ENABLE(gcj-support, [AC_HELP_STRING([--disable-gcj-support], [Disable support for gcj.])])AM_CONDITIONAL(ENABLE_GCJ_SUPPORT, [test x"$enable_gcj_support" != xno])if test x"$enable_gcj_support" != xno; then AC_DEFINE(GC_GCJ_SUPPORT, 1, [Define to include support for gcj])fiAC_ARG_ENABLE(java-finalization, [AC_HELP_STRING([--disable-java-finalization], [Disable support for java finalization.])])if test x"$enable_java_finalization" != xno; then AC_DEFINE(JAVA_FINALIZATION)fiAC_ARG_ENABLE(atomic-uncollectable, [AC_HELP_STRING([--disable-atomic-uncollectible], [Disable support for atomic uncollectible allocation.])])if test x"$enable_atomic_uncollectible" != x"no"; then AC_DEFINE(ATOMIC_UNCOLLECTABLE, 1, [Define to enable atomic uncollectible allocation.])fiAC_ARG_ENABLE(redirect-malloc, [AC_HELP_STRING([--enable-redirect-malloc], [Redirect malloc and friends to GC routines])])if test "${enable_redirect_malloc}" = yes; then if test "${enable_full_debug}" = yes; then AC_DEFINE(REDIRECT_MALLOC, GC_debug_malloc_replacement) AC_DEFINE(REDIRECT_REALLOC, GC_debug_realloc_replacement) AC_DEFINE(REDIRECT_FREE, GC_debug_free) else AC_DEFINE(REDIRECT_MALLOC, GC_malloc) fifiAC_ARG_ENABLE(large-config, [AC_HELP_STRING([--enable-large-config], [Optimize for large (> 100 MB) heap or root set])])if test "${enable_large_config}" = yes; then AC_DEFINE(LARGE_CONFIG, 1, [Define to optimize for large heaps or root sets])fidnl This is something of a hack. When cross-compiling we turn offdnl some functionality. We also enable the "small" configuration.dnl These is only correct when targetting an embedded system. FIXME.if test -n "${with_cross_host}"; then AC_DEFINE(NO_CLOCK) AC_DEFINE(SMALL_CONFIG) AC_DEFINE(NO_DEBUGGING)fidnl Debuggingdnl ---------UNWINDLIBS=AC_ARG_ENABLE(gc-debug,[AC_HELP_STRING([--enable-gc-debug], [include full support for pointer backtracing etc.])],[ if test "$enable_gc_debug" = "yes"; then AC_MSG_WARN("Should define GC_DEBUG and use debug alloc. in clients.") AC_DEFINE(KEEP_BACK_PTRS) AC_DEFINE(DBG_HDRS_ALL) case $host in ia64-*-linux* ) AC_DEFINE(MAKE_BACK_GRAPH) AC_DEFINE(SAVE_CALL_COUNT, 8) AC_CHECK_LIB(unwind, backtrace, [ AC_DEFINE(GC_HAVE_BUILTIN_BACKTRACE) UNWINDLIBS=-lunwind AC_MSG_WARN("Client code may need to link against libunwind.") ]) ;; x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* ) AC_DEFINE(MAKE_BACK_GRAPH) AC_MSG_WARN("Client must not use -fomit-frame-pointer.") AC_DEFINE(SAVE_CALL_COUNT, 8) ;; i[3456]86-*-dgux*) AC_DEFINE(MAKE_BACK_GRAPH) ;; esac ] fi)AC_SUBST(UNWINDLIBS)AC_ARG_ENABLE(gc-assertions, [AC_HELP_STRING([--enable-gc-assertions], [collector-internal assertion checking])])if test "${enable_gc_assertions}" = yes; then AC_DEFINE(GC_ASSERTIONS)fiAM_CONDITIONAL(USE_LIBDIR, test -z "$with_cross_host")dnl Atomic Opsdnl ----------atomic_ops_libs=-latomic_opsAC_CHECK_HEADER(atomic_ops.h, [ AC_MSG_NOTICE([Using pre-installed libatomic_ops]) ], [ ao_dir= for candidate in ${srcdir}/libatomic_ops*; do case $candidate in *.tar.gz) ;; *install) dnl generated by alternate Makefile. ;; *) if test -e "$candidate"; then ao_dir="$candidate" fi ;; esac done if test -z "$ao_dir"; then AC_MSG_ERROR([Missig libatomic_ops.]) fi ao_version="${ao_dir#*libatomic_ops-}" AC_MSG_NOTICE([Using internal version of libatomic_ops]) dnl Automake does not accept shell variables in AC_CONFIG_SUBDIRS test -e ${srcdir}/libatomic_ops \ || ln -s ${ao_dir} ${srcdir}/libatomic_ops AC_CONFIG_SUBDIRS(libatomic_ops) dnl Also copy the source files to be linked in. test -e ${srcdir}/atomic_ops.c \ || ln -s ${srcdir}/libatomic_ops/src/atomic_ops.c \ ${srcdir}/atomic_ops.c test -e ${srcdir}/atomic_ops_sysdeps.S \ || ln -s ${srcdir}/libatomic_ops/src/atomic_ops_sysdeps.S \ ${srcdir}/atomic_ops_sysdeps.S dnl This gets the source include files, which is often close enough. dnl It also makes atomic_ops_sysdeps.S assemble. GC_CFLAGS="${GC_CFLAGS} -I \$(top_srcdir)/libatomic_ops/src" maybe_libatomic_ops="libatomic_ops" ])AM_CONDITIONAL(USE_INTERNAL_LIBATOMIC_OPS, test -n "$maybe_libatomic_ops" -a "$THREADS" != "none")AM_CONDITIONAL(NEED_ATOMIC_OPS_ASM, test -n "$maybe_libatomic_ops" -a x$need_atomic_ops_asm = xtrue)AC_SUBST(atomic_ops_libs)dnl Produce the Filesdnl -----------------AC_CONFIG_FILES([Makefile bdw-gc.pc])AC_CONFIG_COMMANDS([default],, [ srcdir=${srcdir} host=${host} CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} CC="${CC}" DEFS="$DEFS" ])AC_OUTPUT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -