1 dnl Copyright © 1997-2016, The AROS Development Team. All rights reserved.
4 dnl Desc: Autoconf source for configuration file
7 # Note: After file changes, generate configure anew and commit _both_ files.
10 # method of getting shared/non-shared ld/ar tool for target.
12 # ------------------------------------------------------------------------
13 # Here starts the first section of the configure.in file.
14 # ------------------------------------------------------------------------
18 AC_CONFIG_AUX_DIR(scripts/autoconf)
20 # Check what host we are running on.
21 # If a target is not suggested, we use this one.
22 # Note that what we call a target, Autoconf calls a host.
25 # Default versions for the gnu tools we build
26 default_gcc_version="4.6.4"
27 default_binutils_version="2.23.2"
29 # The AROS target is slightly different to the normal GNU style
30 # format. We don't have the middle part, and we reverse the order
31 # of the $(CPU) and $(OS) bits.
33 # Don't strip the version of the target yet, it might be
34 # useful on some systems.
36 AC_MSG_CHECKING([for AROS style target])
38 if test "$target" = "NONE" ; then
39 target=$host_os-$host_cpu
41 if test "$target" = "" ; then
42 target=$host_os-$host_cpu
45 AC_MSG_RESULT($target)
47 if test "$host_os" = "mingw32" ; then
51 # Don't know where else to put this...
52 AC_MSG_CHECKING([building AROS in])
53 AROS_BUILDDIR=`${PWDCMD-pwd}`
54 AROS_BUILDDIR_UNIX=${PWD}
55 AC_MSG_RESULT($AROS_BUILDDIR)
57 AC_MSG_CHECKING([AROS source in])
58 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
60 AC_MSG_RESULT($SRCDIR)
62 # Parse the target field into something useful.
64 target_os=`echo $target | sed 's/^\([^-].*\)-\(.*\)$/\1/'`
65 target_cpu=`echo $target | sed 's/^\([^-].*\)-\(.*\)$/\2/'`
68 # Some debug output, to be removed again.
69 AC_MSG_CHECKING([for target system (debug output)])
70 AC_MSG_RESULT($target_os)
71 AC_MSG_CHECKING([for target cpu (debug output)])
72 AC_MSG_RESULT($target_cpu)
74 dnl --------------------------------------------------------------------
75 dnl Set the default Workbench resolution
76 dnl --------------------------------------------------------------------
77 aros_nominal_width=800
78 aros_nominal_height=600
81 dnl --------------------------------------------------------------------
82 dnl Host Configuration Section
83 dnl --------------------------------------------------------------------
85 dnl The idea here is to find out all the information we need about the
86 dnl host. This means things like tools for building directory structures,
87 dnl copying files around and the like.
89 default_c_compilers="gcc clang cc"
90 AC_ARG_WITH(c-compiler,AC_HELP_STRING([--with-c-compiler=VERSION],[Use specified c compiler for building AROS]),use_c_compiler="$withval",use_c_compiler="")
91 if test "$use_c_compiler" = ""; then
92 host_c_compilers="$default_c_compilers"
94 host_c_compilers="$use_c_compiler"
97 default_cxx_compilers="g++ clang++ c++"
98 AC_ARG_WITH(cxx-compiler,AC_HELP_STRING([--with-cxx-compiler=VERSION],[Use specified c++ compiler building AROS]),use_cxx_compiler="$withval",use_cxx_compiler="")
99 if test "$use_cxx_compiler" = ""; then
100 host_cxx_compilers="$default_cxx_compilers"
102 host_cxx_compilers="$use_cxx_compiler"
106 # The first step is to find the host binaries.
107 # Check for a compiler.
108 # Due to a bug in autoconf check for c++ compiler first.
109 # For mor info see, http://osdir.com/ml/bug-autoconf-gnu/2010-05/msg00001.html.
110 AC_PROG_CXX([${host_cxx_compilers}])
111 AC_PROG_CC([${host_c_compilers}])
112 aros_host_def_cc="$CC"
116 # Check for a compatible awk
117 AC_CHECK_PROGS(AWK,[gawk nawk])
118 AROS_REQUIRED(gawk,$AWK)
119 AROS_PROG(MMAKE,mmake)
121 # Perform some default variable assignments. Note all of these will be
122 # Regenerated from the script, so there is no need to cache them.
124 aros_build_host=$host
128 AROS_TOOL_CCPATH(aros_host_ld,ld)
129 AROS_REQUIRED(ld,$aros_host_ld)
130 aros_host_make="make"
131 aros_host_cflags="$CFLAGS"
132 aros_host_cxxflags="$CXXFLAGS"
133 aros_host_ldflags="$LDFLAGS"
134 aros_host_debug="-g -O0"
135 aros_host_mkdep="\$(SRCDIR)/scripts/mkdep"
136 aros_host_mkargs="--no-print-directory"
137 aros_host_exe_suffix="$EXEEXT"
138 aros_host_lib_suffix=""
140 # Ignore all compliance, AROS ROMs = 0
141 # KickStart v1.0 = 30
142 # KickStart v1.3 = 34
143 # KickStart v2.0 = 37
144 # KickStart v3.0 = 39
145 # KickStart v3.1 = 40
147 aros_amigaos_compliance=0
149 AC_CHECK_PROGS(aros_host_aclocal,[aclocal aclocal19 aclocal-1.9])
150 AC_CHECK_PROGS(aros_host_autoconf,[autoconf autoconf259 autoconf253])
151 AC_CHECK_PROGS(aros_host_autoheader,[autoheader autoheader259 autoheader253])
152 AC_CHECK_PROGS(aros_host_automake,[automake automake19 automake-1.9])
154 AROS_REQUIRED(aclocal/aclocal19/aclocal-1.9, $aros_host_aclocal)
155 AROS_REQUIRED(automake/automake19/automake-1.9, $aros_host_automake)
157 case "$aros_host_cc" in
162 aros_host_cc_pipe="-pipe"
172 aros_kernel_cc_includes=""
173 aros_target_cc_includes=""
176 # ----------------------------------------------------------------------------------------
177 # Host-specific defaults
179 # This is the main host configuration section. It is where the host
180 # can change the values of any variables it needs to change. We do
181 # not look at anything that compiles to the target yet, we'll get
186 aros_host_arch="aros"
187 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
193 aros_host_cpu="x86_64"
199 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
200 aros_host_cpu="$host_cpu"
206 aros_host_arch="linux"
207 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
208 android_build_os="linux-x86"
209 android_tool="android"
210 default_android_sdk="/opt/android-sdk-linux_x86"
216 aros_host_cpu="x86_64"
228 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
229 aros_host_cpu="$host_cpu"
235 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe -I/usr/local/include"
236 aros_host_make="gmake"
237 aros_host_arch="freebsd"
240 aros_host_ldflags="$aros_host_ldflags -L/usr/local/lib -liconv"
242 dnl FreeBSD 5.x (and later) has changed the default object format.
243 dnl The double [[]] is necessary to get around m4's quoting rules.
246 aros_object_format="elf_i386"
250 aros_object_format="elf_i386_fbsd"
257 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
258 aros_host_arch="darwin"
260 if [[ -z ${SED+x} ]]; then SED="gsed"; fi
261 android_build_os="darwin-x86"
262 android_tool="android"
263 default_android_sdk="/android-sdk-mac_x86"
269 aros_host_cpu="x86_64"
275 AC_MSG_WARN("Unknown CPU for Darwin host -- $host_cpu")
276 aros_host_cpu="$host_cpu"
280 aros_host_ldflags="$aros_host_ldflags -liconv"
285 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
286 aros_host_make="gmake"
287 aros_host_arch="dragonfly"
293 aros_host_cpu="x86_64"
296 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
297 aros_host_cpu="$host_cpu"
303 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
304 aros_host_make="gmake"
305 aros_host_arch="netbsd"
314 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
315 aros_host_cpu="$host_cpu"
318 aros_host_lib_suffix=".0.0"
322 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
323 aros_host_make="gmake"
324 aros_host_arch="openbsd"
330 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
331 aros_host_cpu="$host_cpu"
337 aros_host_arch="solaris"
338 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
344 aros_host_cpu="sparc"
347 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
348 aros_host_cpu="$host_cpu"
354 aros_host_arch="morphos"
360 aros_host_arch="amiga"
366 TOUCH="/gg/bin/touch"
375 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
376 aros_host_cpu="$host_cpu"
382 aros_host_arch="cygwin"
383 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
385 android_build_os="windows"
386 android_tool="android.bat"
387 default_android_sdk="/cygdrive/c/android-sdk-windows-1.6_r1"
394 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
395 aros_host_cpu="$host_cpu"
401 aros_host_arch="mingw32"
402 aros_host_cflags="$aros_host_cflags $aros_host_cc_pipe"
404 android_build_os="windows"
405 android_tool="android.bat"
406 default_android_sdk="/c/android-sdk-windows-1.6_r1"
410 dnl Currently there's neither 64-bit MinGW nor MSYS. Both environments are 32-bit
411 dnl and run under emulation. Consequently, uname reports i386 even on 64-bit systems.
412 dnl Here we attempt to detect Windows home platform by asking gcc about its target.
413 dnl 64-bit gcc will output "x86_64-w64-mingw32" here.
415 AC_MSG_CHECKING([for Windows native gcc target])
416 host_cpu=`gcc -dumpmachine`
417 AC_MSG_RESULT($host_cpu)
428 dnl Native i386 gcc for MinGW32 reports 'mingw32' with -dumpmachine switch
433 aros_host_cpu="x86_64"
434 dnl Dragon's x86_64-w64-mingw32-gcc is a bit broken. It ignores standard $prefix/include
435 dnl directory, so we have to add it explicitly here.
436 aros_host_cflags="$aros_host_cflags -isystem /mingw/include"
440 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
441 aros_host_cpu="$host_cpu"
446 AC_MSG_ERROR([Unsupported host architecture $host])
450 AROS_PROG(aros_host_ar,[ar],[cr])
451 AROS_REQUIRED(ar,$aros_host_ar)
452 AROS_PROG(aros_host_ranlib,ranlib)
453 AROS_REQUIRED(ranlib,$aros_host_ranlib)
454 AROS_PROG(aros_host_strip,strip)
455 AROS_REQUIRED(strip,$aros_host_strip)
457 AROS_PROG(RM,[rm],[-rf])
458 AROS_REQUIRED(rm,$RM)
460 AROS_REQUIRED(cp,$CP)
462 AROS_REQUIRED(mv,$MV)
463 AROS_PROG(ECHO,[echo])
464 AROS_REQUIRED(echo,$ECHO)
465 AROS_PROG(MKDIR,[mkdir],[-p])
466 AROS_REQUIRED(mkdir,$MKDIR)
467 AROS_PROG(TOUCH,[touch])
468 AROS_REQUIRED(touch,$TOUCH)
469 AROS_PROG(SORT,[sort])
470 AROS_REQUIRED(sort,$SORT)
471 AROS_PROG(UNIQ,[uniq])
472 AROS_REQUIRED(uniq,$UNIQ)
473 AROS_PROG(NOP,[true])
474 AROS_REQUIRED(true,$NOP)
476 AROS_REQUIRED(cat,$CAT)
477 AROS_PROG(BISON,[bison])
478 AROS_REQUIRED(bison,$BISON)
479 AROS_PROG(FLEX,[flex])
480 AROS_REQUIRED(flex,$FLEX)
481 AROS_PROG(PNGTOPNM,[pngtopnm])
482 AROS_REQUIRED(pngtopnm,$PNGTOPNM)
483 AROS_PROG(PPMTOILBM,[ppmtoilbm])
484 AROS_REQUIRED(ppmtoilbm,$PPMTOILBM)
486 AROS_REQUIRED(sed,$SED)
487 AROS_PROG(CHMOD,[chmod])
488 AROS_REQUIRED(chmod,$CHMOD)
489 AROS_PROG(PATCH,[patch])
490 AROS_REQUIRED(patch,$PATCH)
494 AC_CHECK_LIB(png, png_read_png, [libpng="png"],
495 [AC_CHECK_LIB(png16, png_read_png, [libpng="png16"], [libpng="no"])])
496 AROS_REQUIRED(libpng, $libpng)
504 dnl ---------------------------------------------------------------------------
505 dnl Look for things about the host system, good for hosted targets.
506 dnl ---------------------------------------------------------------------------
508 # Check for some includes for the X11 HIDD and the kernel
509 AC_CHECK_HEADERS([sys/ipc.h sys/shm.h \
510 sys/mmap.h sys/mman.h sysexits.h \
511 sys/statfs.h sys/statvfs.h sys/vfs.h sys/param.h \
514 AC_CHECK_HEADERS([sys/mount.h],,,[#include <sys/param.h>])
531 AC_CHECK_MEMBERS(struct tm.tm_gmtoff)
533 # Look for some functions
534 AC_CHECK_FUNCS([getpagesize kqueue statfs statvfs \
535 clone kse_create rfork_thread thr_create sa_register \
536 getcontext makecontext setcontext sigaltstack swapcontext])
540 #-----------------------------------------------------------------------------
543 # GCC 4.1+ has a stack protection feature that requires OS support. Ubuntu has
544 # it switched on by default, and we use the host compiler, so it compiles AROS
545 # code with this enabled resulting in link failures as we don't have support
548 # We use two methods to disable it. For the host compiler (used to compile
549 # some hosted modules), we test to see if the compiler supports stack
550 # protection, and if it does we disable it in AROS_CONFIG_CFLAGS. This should
551 # work on all platforms.
553 # For the "cross" compiler we clear the "ssp_default" spec in config/specs.in
554 # (this is done unconditionally, as it should have no effect on compilers
555 # without the stack protection feature). This may be specific to the way that
556 # Ubuntu enables the feature, so may not work everywhere. My specs-fu isn't
557 # strong enough to disable it in a generic way though, so we'll live with it
558 # until another vendor ships GCC with it enabled in a different way, and deal
562 AC_MSG_CHECKING([whether ${CC} accepts -fno-stack-protector])
563 save_cflags="$CFLAGS"
564 CFLAGS="$CFLAGS -fno-stack-protector"
565 AC_TRY_COMPILE(,, use_no_stack_protector="yes", use_no_stack_protector="no")
566 AC_MSG_RESULT($use_no_stack_protector)
567 if test "x-$use_no_stack_protector" = "x-yes" ; then
568 aros_host_cflags="$aros_host_cflags -fno-stack-protector"
570 CFLAGS="$save_cflags"
572 #-----------------------------------------------------------------------------
574 # Disable pointer-signedness warnings if the compiler recognises the option
575 # (this only works for the host compiler at the moment)
577 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
578 save_cflags="$CFLAGS"
579 CFLAGS="$CFLAGS -Wno-pointer-sign"
580 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
581 AC_MSG_RESULT($use_no_sign_warning)
582 if test "x-$use_no_sign_warning" = "x-yes" ; then
583 aros_host_cflags="$aros_host_cflags -Wno-pointer-sign"
585 CFLAGS="$save_cflags"
587 #-----------------------------------------------------------------------------
589 # Check if host compiler supports -fgnu89-inline, can be needed for crosstools.
591 AC_MSG_CHECKING([whether ${CC} accepts -fgnu89-inline])
592 save_cflags="$CFLAGS"
593 CFLAGS="$CFLAGS -fgnu89-inline"
594 AC_TRY_COMPILE(,, use_gnu89_inline="yes", use_gnu89_inline="no")
595 AC_MSG_RESULT($use_gnu89_inline)
596 if test "x-$use_gnu89_inline" = "x-yes" ; then
597 gnu89_inline="-fgnu89-inline"
599 CFLAGS="$save_cflags"
601 AC_MSG_NOTICE([Performing target configuration...])
603 dnl --------------------------------------------------------------------
604 dnl Target Configuration Section
605 dnl --------------------------------------------------------------------
607 dnl The target configuration section is responsible for setting up all
608 dnl the paths for includes, and tools required to build AROS to some
609 dnl particular target.
611 aros_nowarn_flags="NOWARN_POINTER_SIGN NOWARN_PARENTHESES"
613 toolchain_needs_sysroot=no
615 aros_config_cflags="-Wall -Werror-implicit-function-declaration"
616 aros_config_aflags="-Wall -x assembler-with-cpp -c"
617 aros_config_ldflags=""
619 aros_shared_default=yes
621 aros_shared_cflags="-fPIC"
622 aros_shared_aflags=""
623 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
624 aros_kernel_ldflags="-Wl,-rpath,./lib"
626 aros_kernel_ar_flags="cr"
627 aros_target_ar_flags="cr"
628 aros_target_nm_flags="-C -ul"
629 aros_target_strip_flags="--strip-unneeded -R.comment"
634 aros_target_genmap="-Wl,-Map -Xlinker"
636 # Native flavour stuff
637 aros_serial_debug="0"
639 # Palm native flavour stuff
640 aros_palm_debug_hack="0"
643 aros_nesting_supervisor="0"
645 # Collect-aros stuff: "-ius" to ignore undefined symbols
646 ignore_undefined_symbols=""
648 # Check for X11 by default
656 AC_MSG_CHECKING([Which toolchain family to use ...])
657 AC_ARG_WITH(toolchain,AC_HELP_STRING([--with-toolchain=family],[Which toolchain family to crosscompile with (defaults to gnu)]),aros_toolchain="$withval",aros_toolchain="gnu")
658 AC_MSG_RESULT($aros_toolchain)
660 case "$aros_toolchain" in
662 # toolchain_needs_sysroot=yes
663 toolchain_c_compiler="clang"
664 toolchain_cxx_compiler="clang++"
665 toolchain_cpp_preprocessor="clang -E"
667 toolchain_as="llvm-as"
668 toolchain_ar="llvm-ar"
669 toolchain_ranlib="llvm-ranlib"
670 toolchain_nm="llvm-nm"
671 toolchain_strip="true"
672 toolchain_objcopy="llvm-objcopy"
673 toolchain_objdump="llvm-objdump"
676 toolchain_c_compiler="gcc"
677 toolchain_cxx_compiler="g++"
678 toolchain_cpp_preprocessor="cpp"
682 toolchain_ranlib="ranlib"
684 toolchain_strip="strip"
685 toolchain_objcopy="objcopy"
686 toolchain_objdump="objdump"
689 AC_MSG_WARN("Unknown toolchain family!")
690 toolchain_c_compiler="cc"
691 toolchain_cxx_compiler="c++"
692 toolchain_cpp_preprocessor="cpp"
696 toolchain_ranlib="ranlib"
698 toolchain_strip="strip"
699 toolchain_objcopy="objcopy"
700 toolchain_objdump="objdump"
704 #-----------------------------------------------------------------------------
706 AC_MSG_CHECKING([which type of build to do])
707 AC_ARG_ENABLE(build_type,AC_HELP_STRING([--enable-build-type=TYPE],[Select the build type. Available types are: personal, nightly, snapshot, milestone, release. Do NOT use this option unless you know what you are doing! (default=personal)]),build_type=$enableval,build_type="personal")
709 if test "$build_type" = "nightly"; then
710 build_type_string="NIGHTLY"
711 elif test "$build_type" = "snapshot"; then
712 build_type_string="SNAPSHOT"
713 elif test "$build_type" = "milestone"; then
714 build_type_string="MILESTONE"
715 elif test "$build_type" = "release"; then
716 build_type_string="RELEASE"
718 build_type_string="PERSONAL"
719 build_type="personal"
722 aros_config_cflags="$aros_config_cflags -DAROS_BUILD_TYPE=AROS_BUILD_TYPE_$build_type_string"
724 AC_MSG_RESULT($build_type)
726 #-----------------------------------------------------------------------------
727 all_debug_types="messages stack modules mungwall symbols"
729 AC_MSG_CHECKING([which debug types to enable])
730 AC_ARG_ENABLE(debug,AC_HELP_STRING([--enable-debug=list],[Enable different types of debug. Commas or whitespaces can be used to separate the items in the list. Available types of debug are: all, none, messages, stack, mungwall, modules, symbols. If no list is provided then "all" is assumed. (default=none)]),
731 debug="$enableval",debug="")
733 if test "$debug" = "" -o "$debug" = "no"; then
735 elif test "$debug" = "yes"; then
739 if test "$debug" = "all" ; then
740 debug="messages stack modules symbols"
741 for d in $all_debug_types; do
742 export aros_${d}_debug="1"
745 for d in $all_debug_types; do
746 export aros_${d}_debug="0"
750 if test "$debug" != "none"; then
751 debug=`echo $debug | sed s/,/\ /g`
754 for d2 in $all_debug_types; do
755 if test "$d2" = "$d"; then
760 if test "$found" = "0"; then
761 AC_MSG_ERROR([unrecognized debug type "$d". Available types are: all none $all_debug_types])
763 export aros_${d}_debug="1"
767 AC_MSG_RESULT($debug)
769 if test "$aros_messages_debug" = "1"; then
770 aros_messages_debug="-DADEBUG=1 -DMDEBUG=1"
772 aros_messages_debug=""
774 if test "$aros_symbols_debug" = "1"; then
775 aros_symbols_debug="-g"
777 aros_symbols_debug=""
780 # These are the flags to pass when compiling debugged programs
781 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
783 aros_debug_ldflags="$aros_symbols_debug"
785 #-----------------------------------------------------------------------------
786 # Checking for distcc and ccache.
788 # Always apply the transforms in this particular order. Basically you should
789 # always run 'ccache distcc compiler' in that order for the best performance.
791 AC_MSG_CHECKING([whether to enable distcc])
792 AC_ARG_ENABLE(distcc,AC_HELP_STRING([--enable-distcc],[Use distcc as a front end to the compiler (default=no).]),distcc="$enableval",distcc="no")
793 if test "$distcc" != "" -a "$distcc" != "no"; then
794 # AC_CHECK_PROG will print out the result in this case
795 AC_PATH_PROG(DISTCC,[distcc],distcc,)
800 AC_MSG_CHECKING([whether to enable ccache])
801 AC_ARG_ENABLE(ccache,AC_HELP_STRING([--enable-ccache],[Use ccache as a front end to the compiler (default=no).]),ccache="$enableval",ccache="no")
802 if test "$ccache" != "" -a "$ccache" != "no"; then
803 # AC_CHECK_PROG will print out the result in this case
804 AC_CHECK_PROG(CCACHE,[ccache],ccache,)
809 #-----------------------------------------------------------------------------
810 AC_MSG_CHECKING([what specific host gcc version to use])
811 AC_ARG_WITH(kernel-gcc-version,AC_HELP_STRING([--with-kernel-gcc-version=VERSION],[Use gcc-VERSION for building bootstrap]),kernel_tool_version="$withval",kernel_tool_version="")
812 AC_MSG_RESULT($kernel_tool_version)
814 #-----------------------------------------------------------------------------
815 AC_MSG_CHECKING([what optimization flags to use])
816 AC_ARG_WITH(optimization,AC_HELP_STRING([--with-optimization=FLAGS],[Use optimization flags FLAGS (default=-O2).]),optimization="$withval",optimization="unknown")
817 if test "$optimization" = "unknown"; then
818 dnl default is -O2 for normal builds, -O0 for debug builds
819 if test "$debug" != "none"; then
825 aros_optimization_cflags="$optimization"
826 AC_MSG_RESULT($optimization)
828 #-----------------------------------------------------------------------------
829 AC_MSG_CHECKING([which paranoia flags to use])
830 AC_ARG_WITH(paranoia,AC_HELP_STRING([--with-paranoia=FLAGS],[compiler warning flags to enable for paranoia]),[paranoia_flags="$withval"],[paranoia_flags="default"])
831 if test "$paranoia_flags" = "default"; then
834 else if test "$paranoia_flags" = "yes"; then
835 paranoia_flags="-Wall -Werror"
836 msg_result="$paranoia_flags"
838 AC_MSG_RESULT($msg_result)
839 aros_config_cflags="$aros_config_cflags $paranoia_flags"
841 #-----------------------------------------------------------------------------
842 AC_MSG_CHECKING([what target variant to enable])
843 AC_ARG_ENABLE(target_variant,AC_HELP_STRING([--enable-target-variant=NAME],[Enable a specific target variant(default=none)]),target_variant=$enableval,target_variant="")
844 if test "$target_variant" = ""; then
845 aros_target_variant=""
846 aros_target_suffix=""
849 aros_target_variant="$target_variant"
850 aros_target_suffix="-$target_variant"
852 AC_MSG_RESULT($enableval)
854 #-----------------------------------------------------------------------------
855 # Target-specific defaults. You can override then on a per-target basis.
857 # Bootloader name. Currently used by PC target.
858 target_bootloader="none"
861 #-----------------------------------------------------------------------------
862 # Additional options for some specific targets
864 case "$aros_target_variant" in
866 AC_MSG_CHECKING([XCode path])
867 AC_ARG_WITH(xcode,AC_HELP_STRING([--with-xcode=PATH],[Specify XCode path for iOS targets (default=/Developer).]),aros_xcode_path="$withval",aros_xcode_path="/Developer")
868 AC_MSG_RESULT($aros_xcode_path)
870 AC_MSG_CHECKING([what iOS SDK version to use])
871 AC_ARG_WITH(sdk-version,AC_HELP_STRING([--with-sdk-version=VERSION],[Use iOS SDK version VERSION (default=4.1).]),aros_sdk_version="$withval",aros_sdk_version="4.1")
872 AC_MSG_RESULT($aros_sdk_version)
877 AC_MSG_CHECKING([Android SDK path])
878 AC_ARG_WITH(sdk,AC_HELP_STRING([--with-sdk=PATH],[Specify Android SDK path (default=$default_android_sdk).]),aros_android_sdk="$withval",aros_android_sdk=$default_android_sdk)
879 AC_MSG_RESULT($aros_android_sdk)
881 AC_MSG_CHECKING([Android NDK path])
882 AC_ARG_WITH(ndk,AC_HELP_STRING([--with-ndk=PATH],[Specify Android NDK path (default=none).]),aros_android_ndk="$withval",aros_android_ndk="none")
883 AC_MSG_RESULT($aros_android_ndk)
885 AC_MSG_CHECKING([what Android SDK version to use])
886 AC_ARG_WITH(sdk-version,AC_HELP_STRING([--with-sdk-version=LEVEL],[Use Android SDK for API LEVEL (default=12).]),aros_sdk_version="$withval",aros_sdk_version="12")
887 AC_MSG_RESULT($aros_sdk_version)
889 aros_android_level=android-$aros_sdk_version
890 if test ! -d $aros_android_sdk/platforms/$aros_android_level; then
891 echo "Platform $aros_android_level is not installed in your SDK"
892 echo "Use --with-sdk-version=<API level number> to select another platform version"
893 echo "You can check what plaform versions are installed in your SDK"
894 echo "by examining contents of $aros_android_sdk/platforms directory"
895 AC_MSG_ERROR([Android platform $aros_android_level is not installed])
898 export PATH="$aros_android_sdk/tools:$PATH"
899 AC_PATH_PROG(android_tool, $android_tool)
900 AROS_REQUIRED(android,$android_tool)
902 if test "$aros_android_ndk" != "none"; then
903 AC_MSG_CHECKING([what Android NDK version to use])
904 AC_ARG_WITH(ndk-version,AC_HELP_STRING([--with-ndk-version=LEVEL],[Use Android NDK for API LEVEL (default=9).]),aros_ndk_version="$withval",aros_ndk_version="9")
905 AC_MSG_RESULT($aros_ndk_version)
908 AC_PATH_PROG(ant, ant)
909 if test "$ant" = ""; then
910 AC_MSG_WARN([Apache Ant is missing, Java bootstrap can't be built automatically])
913 AC_MSG_CHECKING([Build debug or release apk])
914 AC_ARG_WITH(apk-version,AC_HELP_STRING([--with-apk-version=(release|debug)],[Which version of AROSBootstrap.apk to compile. Release version needs key for signing, debug version will only run in emulator. (default=release)]),aros_android_antapk=$withval,aros_android_antapk=release)
915 if test $aros_android_antapk != release -a $aros_android_antapk != debug; then
916 AC_MSG_ERROR([apk-version has to be release or debug])
918 AC_MSG_RESULT($aros_android_antapk)
920 dnl MSYS bash can't run .bat files directly, then need to be started via cmd.exe
921 if test "$host_os" = "mingw32"; then
922 android_tool="cmd //c $android_tool"
930 #-----------------------------------------------------------------------------
931 # External toolchains
932 kernel_tool_prefix="none"
933 aros_tool_prefix="none"
934 elf_tool_prefix="${target_cpu}-elf-"
936 # This is the target configuration switch.
939 aros_target_arch="linux"
940 aros_target_family="unix"
941 case "$target_cpu" in
943 aros_target_cpu="m68k"
944 aros_object_format="m68kelf"
945 aros_flavour="emulcompat"
946 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__linux__"
947 aros_shared_ldflags="-Wl,-T,\$(TOP)/config/linux/m68k/script.so"
948 aros_kernel_ldflags="-Wl,-rpath,./lib,-T,\$(TOP)/config/linux/m68k/script.normal"
949 gcc_target_cpu="mc68000"
952 aros_target_cpu="i386"
953 aros_object_format="elf_i386"
954 aros_flavour="emulation"
955 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__linux__"
956 aros_kernel_ldflags="-Wl,-melf_i386"
958 gcc_target_cpu="i386"
959 pci_hidd_target="hidd-pci-linux"
960 android_tool_dir_prefix="x86"
961 android_tool_prefix="i686-android-linux"
962 android_ndk_arch="x86"
965 aros_target_cpu="x86_64"
966 aros_object_format="elf_x86_64"
967 aros_flavour="emulation"
968 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__linux__"
969 aros_config_cflags="$aros_config_cflags -mcmodel=large -mno-red-zone -fno-omit-frame-pointer"
971 pci_hidd_target="hidd-pci-linux"
974 aros_target_cpu="ppc"
975 aros_object_format="elf32ppc"
976 aros_flavour="emulation"
977 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
982 # Same as powerpc, but I need this for the nightly build to work again.
983 # Actually, the nightly should be made working with powerpc target.
984 # That just was too much work for the moment, another week or two.
986 aros_target_cpu="ppc"
987 aros_object_format="elf32ppc"
988 aros_flavour="emulation"
989 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
994 aros_target_cpu="aarch64"
996 aros_object_format="aarch64elf_aros"
997 aros_flavour="emulation"
998 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm -D__linux__"
999 gcc_target_cpu="aarch64"
1000 aros_config_cflags="$aros_config_cflags -fno-strict-aliasing -fno-omit-frame-pointer"
1001 aros_config_aflags="$aros_config_aflags -fno-strict-aliasing"
1002 aros_arch_libs="-laeabi"
1003 gcc_default_float_abi="hard"
1004 kernel_tool_prefix="aarch64-linux-gnueabihf-"
1007 aros_target_cpu="arm"
1009 aros_object_format="armelf_aros"
1010 aros_flavour="emulation"
1011 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm -D__linux__"
1012 gcc_target_cpu="arm"
1013 aros_config_cflags="$aros_config_cflags -fno-strict-aliasing -fno-omit-frame-pointer"
1014 aros_config_aflags="$aros_config_aflags -fno-strict-aliasing"
1015 aros_arch_libs="-laeabi"
1016 gcc_default_float_abi="hard"
1017 android_tool_dir_prefix="arm-linux-androideabi"
1018 android_tool_prefix="arm-linux-androideabi"
1019 android_ndk_arch="arm"
1020 kernel_tool_prefix="arm-linux-gnueabihf-"
1023 aros_target_cpu="arm"
1024 aros_object_format="armelf_aros"
1025 aros_flavour="emulation"
1026 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm -D__linux__"
1027 gcc_target_cpu="arm"
1028 aros_config_cflags="$aros_config_cflags -fno-strict-aliasing -fno-omit-frame-pointer"
1029 aros_config_aflags="$aros_config_aflags -fno-strict-aliasing"
1030 aros_arch_libs="-laeabi"
1031 android_tool_dir_prefix="arm-linux-androideabi"
1032 android_tool_prefix="arm-linux-androideabi"
1033 android_ndk_arch="arm"
1034 kernel_tool_prefix="arm-linux-gnueabi-"
1037 AC_MSG_ERROR("Unknown CPU for Linux -- $target_cpu")
1040 case "$aros_target_variant" in
1043 dnl Not all Linux CPUs are supported by Android
1044 if test "$android_ndk_arch" = ""; then
1045 AC_MSG_ERROR("Unsupported CPU for Android -- $target_cpu")
1048 aros_nominal_width=320
1049 aros_nominal_height=480
1050 if test "$aros_android_ndk" = "none"; then
1051 dnl Use standalone toolchain, don't adjust paths
1052 aros_kernel_cflags="-mandroid"
1053 aros_kernel_ldflags="-mandroid"
1056 dnl In Android NDK toolchains are placed in own directories,
1057 dnl but tool names are not suffixed with version
1058 export PATH="$aros_android_ndk/toolchains/$android_tool_dir_prefix-$kernel_tool_version/prebuilt/$android_build_os/bin:$PATH"
1059 kernel_tool_version=""
1060 aros_android_ndk="$aros_android_ndk/platforms/android-$aros_ndk_version/arch-$android_ndk_arch"
1061 aros_kernel_cflags="--sysroot $aros_android_ndk -mandroid"
1062 aros_kernel_ldflags="--sysroot $aros_android_ndk -mandroid"
1063 CFLAGS="$CFLAGS --sysroot $aros_android_ndk -mandroid"
1064 aros_kernel_includes="-isystem $aros_android_ndk/usr/include"
1067 host_android_gfx=yes
1068 # Disable implicit PIC mode
1069 aros_target_cflags="$aros_target_cflags -fno-pic"
1070 kernel_tool_prefix="$android_tool_prefix-"
1076 aros_target_arch="pc"
1077 aros_shared_default="no"
1078 target_bootloader="grub2"
1079 case "$target_cpu" in
1081 aros_target_cpu="i386"
1083 dnl If somebody hasn't already set the target object
1084 dnl format, then use this value. Mostly to support
1085 dnl FreeBSD cross-compilation.
1086 dnl TODO: Remove when we always use our compiler.
1088 if test "$aros_object_format" = "" ; then
1089 aros_object_format="elf_i386"
1091 aros_flavour="standalone"
1092 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
1093 aros_kernel_ldflags="-Wl,-melf_i386"
1094 aros_nominal_width=640
1095 aros_nominal_height=480
1096 gcc_target_cpu="i386"
1099 aros_target_cpu="x86_64"
1101 if test "$aros_object_format" = "" ; then
1102 aros_object_format="elf_x86_64"
1104 aros_flavour="standalone"
1105 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
1106 aros_config_cflags="$aros_config_cflags -mcmodel=large -fno-asynchronous-unwind-tables -mno-red-zone -fno-omit-frame-pointer"
1107 aros_kernel_ldflags=""
1108 aros_nominal_width=640
1109 aros_nominal_height=480
1110 case "$aros_target_variant" in
1112 ENABLE_EXECSMP="#define __AROSEXEC_SMP__"
1117 AC_MSG_ERROR("Unknown native CPU -- $target_cpu")
1123 aros_target_arch="prep"
1124 aros_shared_default="no"
1125 aros_target_cpu="ppc"
1126 aros_object_format="elf32ppc"
1127 aros_flavour="ppcnative"
1128 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
1129 aros_kernel_ldflags=""
1130 aros_nominal_width=640
1131 aros_nominal_height=480
1132 gcc_target_cpu="ppc"
1136 aros_target_arch="freebsd"
1137 aros_target_family="unix"
1138 aros_target_cpu="i386"
1139 aros_flavour="emulation"
1140 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
1141 gcc_target_cpu="i386"
1143 aros_target_strip_flags="-x"
1147 aros_target_arch="darwin"
1148 aros_target_family="unix"
1149 aros_flavour="emulation"
1150 case "$target_cpu" in
1152 aros_ios_platform="iPhoneSimulator"
1153 aros_target_cpu="i386"
1154 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
1155 aros_kernel_ldflags=""
1156 aros_macosx_version="10.4"
1157 aros_nominal_depth=8
1158 gcc_target_cpu="i386"
1159 aros_object_format="elf_i386"
1160 aros_kernel_ar_flags="-cr"
1161 aros_target_strip_flags="-x"
1162 kernel_tool_flags="-m32"
1165 aros_target_cpu="x86_64"
1166 aros_object_format="elf_x86_64"
1167 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
1168 aros_macosx_version="10.6"
1169 aros_config_cflags="$aros_config_cflags -fno-omit-frame-pointer"
1170 aros_kernel_cflags="-m64"
1171 aros_kernel_ldflags="-m64"
1172 aros_target_cflags="-mcmodel=large"
1173 aros_nominal_depth=8
1175 aros_kernel_ar_flags="-cr"
1178 aros_kernel_ranlib="ranlib"
1180 aros_kernel_strip="strip"
1181 kernel_tool_prefix="i686-apple-darwin10-"
1184 aros_target_cpu="ppc"
1185 aros_object_format="elf32ppc"
1186 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
1187 aros_kernel_ldflags=""
1188 aros_macosx_version="10.0"
1189 aros_nominal_depth=8
1190 gcc_target_cpu="ppc"
1192 aros_kernel_ar_flags="-cr"
1193 aros_kernel_ld="ld -arch ppc"
1194 aros_kernel_as="as -arch ppc"
1195 aros_kernel_ranlib="ranlib -arch ppc"
1196 aros_kernel_nm="nm -arch ppc"
1197 aros_kernel_strip="strip -arch ppc"
1198 kernel_tool_prefix="powerpc-apple-darwin10-"
1201 aros_ios_platform="iPhoneOS"
1202 aros_target_cpu="arm"
1203 aros_object_format="armelf_aros"
1204 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm"
1205 aros_arch_libs="-laeabi"
1206 aros_nominal_depth=8
1207 gcc_target_cpu="arm"
1209 aros_kernel_ar_flags="-cr"
1210 aros_kernel_ld="ld -arch arm"
1211 aros_kernel_ranlib="ranlib -arch arm"
1212 kernel_tool_prefix="arm-apple-darwin10-"
1213 export PATH="$aros_xcode_path/Platforms/$aros_ios_platform.platform/Developer/usr/bin:$PATH"
1216 AC_MSG_ERROR("Unsupported target CPU for darwin hosted flavour -- $target_cpu")
1219 case "$aros_target_variant" in
1221 aros_ios_version="3.0"
1222 aros_nominal_width=320
1223 aros_nominal_height=480
1224 aros_ios_sdk="$aros_xcode_path/Platforms/$aros_ios_platform.platform/Developer/SDKs/$aros_ios_platform$aros_sdk_version.sdk"
1225 kernel_tool_flags="$target_tool_flags -isysroot $aros_ios_sdk"
1226 aros_kernel_includes="-isystem $aros_ios_sdk/usr/include"
1228 # This is here because it may depend on iOS or SDK version
1229 aros_kernel_cflags="$aros_kernel_cflags -miphoneos-version-min=$aros_ios_version"
1230 aros_kernel_ldflags="$aros_kernel_ldflags -miphoneos-version-min=$aros_ios_version"
1231 aros_kernel_objcflags="-fobjc-abi-version=2 -fobjc-legacy-dispatch"
1234 aros_kernel_cflags="$aros_kernel_cflags -mmacosx-version-min=$aros_macosx_version"
1235 aros_kernel_ldflags="$aros_kernel_ldflags -mmacosx-version-min=$aros_macosx_version"
1241 aros_target_arch="dragonfly"
1242 aros_target_family="unix"
1243 aros_flavour="emulation"
1244 case "$target_cpu" in
1246 aros_target_cpu="i386"
1247 aros_object_format="elf_i386"
1248 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__DragonFly__"
1251 aros_config_cflags="$aros_config_cflags -fno-omit-frame-pointer"
1252 aros_target_cpu="x86_64"
1253 aros_object_format="elf_x86_64"
1254 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__DragonFly__"
1257 AC_MSG_ERROR("Unknown CPU for DragonFly -- $target_cpu")
1263 aros_target_arch="netbsd"
1264 aros_target_family="unix"
1265 case "$target_cpu" in
1267 aros_target_cpu="m68k"
1268 aros_object_format="m68kelf"
1269 aros_flavour="emulcompat"
1270 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
1271 gcc_target_cpu="mc68000"
1274 aros_target_cpu="i386"
1275 aros_object_format="elf_i386"
1276 aros_flavour="emulation"
1277 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
1278 aros_nominal_depth=8
1279 gcc_target_cpu="i386"
1282 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
1285 aros_target_genmap="-Wl,-M -Xlinker >"
1286 aros_flavour="emulation"
1287 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
1291 aros_target_arch="openbsd"
1292 aros_target_family="unix"
1293 case "$target_cpu" in
1295 aros_target_cpu="i386"
1296 aros_object_format="elf_i386"
1297 aros_flavour="emulation"
1298 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
1299 gcc_target_cpu="i386"
1302 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
1305 aros_target_genmap="-Wl,-M -Xlinker >"
1306 aros_target_nm_flags="-u"
1307 aros_flavour="emulation"
1311 aros_target_arch="solaris"
1312 aros_target_family="unix"
1313 case "$target_cpu" in
1315 aros_target_cpu="i386"
1316 aros_object_format="elf_i386"
1317 aros_flavour="emulation"
1318 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__Solaris__"
1319 aros_nominal_depth=8
1320 gcc_target_cpu="i386"
1323 aros_target_cpu="sparc"
1324 aros_object_format="elf_sparc"
1325 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
1326 gcc_target_cpu="sparc"
1329 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
1332 aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
1333 aros_flavour="emulation"
1337 aros_target_arch="morphos"
1338 aros_shared_default="no"
1339 aros_target_cpu="ppc"
1340 aros_object_format="elf_ppc"
1341 aros_flavour="nativecompat"
1342 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
1343 gcc_target_cpu="ppc"
1347 aros_target_arch="sam440"
1348 aros_shared_default="no"
1349 aros_target_cpu="ppc"
1350 aros_object_format="elf32ppc"
1351 aros_flavour="ppcnative"
1352 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
1353 aros_kernel_ldflags=""
1354 aros_nominal_width=1024
1355 aros_nominal_height=768
1356 aros_nominal_depth=24
1357 aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
1358 gcc_target_cpu="powerpc"
1362 aros_target_arch="efika"
1363 aros_shared_default="no"
1364 aros_target_cpu="arm"
1365 aros_object_format="armelf_aros"
1366 aros_flavour="standalone"
1367 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm"
1368 aros_kernel_ldflags=""
1369 aros_nominal_width=1024
1370 aros_nominal_height=600
1371 aros_arch_libs="-laeabi"
1372 gcc_default_cpu="armv7-a"
1373 gcc_default_fpu="vfpv3"
1374 aros_config_cflags="$aros_config_cflags -mtune=cortex-a8 -fno-strict-aliasing -fno-asynchronous-unwind-tables"
1375 aros_config_aflags="$aros_config_aflags -mtune=cortex-a8 -fno-strict-aliasing -fno-asynchronous-unwind-tables"
1376 aros_optimization_cflags="$aros_optimization_cflags -Os"
1377 case "$target_cpu" in
1379 gcc_default_float_abi="hard"
1384 gcc_default_float_abi="softfp"
1387 AC_MSG_ERROR("Unknown CPU for EfikaMX $target_cpu")
1393 aros_target_arch="chrp"
1394 aros_shared_default="no"
1395 aros_target_cpu="ppc"
1396 aros_object_format="elf32ppc"
1397 aros_flavour="ppcnative"
1398 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
1399 aros_kernel_ldflags=""
1400 aros_nominal_width=640
1401 aros_nominal_height=480
1402 aros_config_cflags="$aros_config_cflags -mno-toc -fno-asynchronous-unwind-tables"
1403 gcc_target_cpu="powerpc"
1404 case "$aros_target_variant" in
1406 aros_config_cflags="$aros_config_cflags -DBIG_ENDIAN_OHCI=1 -mcpu=603e"
1412 aros_flavour="standalone"
1413 aros_target_arch="raspi"
1415 aros_shared_default="no"
1416 aros_arch_libs="-laeabi"
1418 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm"
1419 aros_config_cflags="$aros_config_cflags -marm -Wno-error -fno-asynchronous-unwind-tables -fno-exceptions"
1420 aros_config_aflags="$aros_config_aflags -marm -Wno-error -fno-asynchronous-unwind-tables -fno-exceptions"
1421 aros_kernel_cflags="$aros_kernel_cflags -marm -Wno-error -fno-asynchronous-unwind-tables -fno-exceptions"
1422 aros_target_cflags="$aros_kernel_cflags -marm -Wno-error -fno-asynchronous-unwind-tables -fno-exceptions"
1423 case "$target_cpu" in
1425 aros_target_cpu="aarch64"
1426 gcc_default_cpu="aarch64"
1427 aros_object_format="aarch64elf_aros"
1430 aros_target_cpu="arm"
1431 gcc_default_cpu="armv6zk"
1432 gcc_default_cpu_tune="arm1176jzf-s"
1433 aros_object_format="armelf_aros"
1436 aros_target_cpu="arm"
1437 gcc_default_cpu="armv6zk"
1438 gcc_default_cpu_tune="arm1176jzf-s"
1439 aros_object_format="armelf_aros"
1442 AC_MSG_ERROR("Unknown CPU for RasPi $target_cpu")
1446 case "$aros_target_variant" in
1448 ENABLE_EXECSMP="#define __AROSEXEC_SMP__"
1454 aros_flavour="standalone"
1455 aros_target_arch="stm32f7_discovery"
1456 aros_target_cpu="arm"
1457 aros_target_cpu_mode="thumb2"
1458 aros_object_format="armelf_aros"
1459 aros_shared_default="no"
1461 # stm32f7 has DSP opcode support
1462 gcc_default_cpu="armv7e-m"
1463 # gcc_default_cpu="armv7-m"
1464 gcc_default_cpu_tune="cortex-m7"
1465 gcc_default_fpu="fpv4-sp-d16"
1466 # GCC does not recognize fpv5-sp-d16 which should be the correct one to use, or not...
1467 # gcc_default_fpu="fpv5-sp-d16"
1468 gcc_default_float_abi="hard"
1470 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dthumb"
1474 aros_target_arch="amiga"
1475 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
1476 aros_shared_default="no"
1478 case "$target_cpu" in
1480 AC_ARG_ENABLE(amigaos_compliance,AC_HELP_STRING([--enable-amigaos-compliance=VERSION],[Enforce userspace AmigaOS compliance to a specific KickStart version (default=none).]),aros_amigaos_compliance="$enableval")
1482 aros_target_cpu="m68k"
1483 aros_object_format="m68kelf"
1484 aros_flavour="standcompat"
1485 gcc_target_cpu="m68000"
1486 aros_nowarn_flags="$aros_nowarn_flags NOWARN_VOLATILE_REGISTER_VAR"
1487 aros_config_cflags="$aros_config_cflags -fno-strict-aliasing -ffreestanding -fomit-frame-pointer -fbuiltin -DNOLIBINLINE"
1488 aros_optimization_cflags="$aros_optimization_cflags -Os"
1489 aros_config_aflags="$aros_config_aflags"
1490 aros_target_strip_flags="-R.comment --strip-debug"
1491 aros_nominal_width=640
1492 aros_nominal_height=256
1493 aros_nominal_depth=2
1497 aros_flavour="native"
1498 gcc_target_cpu="ppc"
1501 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
1507 aros_target_arch="mingw32"
1508 aros_shared_default="no"
1509 aros_flavour="emulation"
1510 aros_shared_cflags=""
1511 need_crosstools="yes"
1514 case "$target_cpu" in
1516 aros_target_cpu="i386"
1517 aros_object_format="elf_i386"
1518 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
1519 aros_nominal_depth=8
1520 gcc_target_cpu="i386"
1522 kernel_tool_prefix="i386-mingw32-"
1525 aros_target_cpu="x86_64"
1526 aros_object_format="elf_x86_64"
1527 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
1528 aros_config_cflags="$aros_config_cflags -fno-omit-frame-pointer"
1529 aros_nominal_depth=8
1530 kernel_tool_prefix="x86_64-w64-mingw32-"
1533 aros_target_cpu="arm"
1534 aros_object_format="armelf_aros"
1535 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Darm"
1536 aros_arch_libs="-laeabi"
1537 aros_nominal_depth=8
1538 gcc_target_cpu="arm"
1539 gcc_default_float_abi="soft"
1540 kernel_tool_prefix="arm-mingw32ce-"
1541 aros_nominal_width=160
1542 aros_nominal_height=160
1545 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
1548 if test $host_os = "cygwin"; then
1549 aros_kernel_cflags="-mno-cygwin"
1553 aros_target_arch="pp"
1554 aros_shared_default="no"
1555 case "$target_cpu" in
1557 aros_target_cpu="m68k"
1558 aros_object_format="m68kelf"
1559 aros_flavour="palmnative"
1560 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1561 aros_nominal_width=160
1562 aros_nominal_height=160
1563 aros_nominal_depth=1
1564 aros_target_ar_flags="cru"
1565 aros_compiler_libs="-lgcc1"
1566 aros_shared_default=no
1567 aros_shared_cflags="-fpic"
1568 aros_shared_aflags=""
1569 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1570 aros_kernel_ldflags="-Wl,-rpath,./lib"
1571 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
1572 aros_debug_aflags=""
1573 aros_debug_ldflags="$aros_symbols_debug"
1574 aros_mungwall_debug="0"
1575 aros_modules_debug="0"
1576 gcc_target_cpu="mc68000"
1577 ignore_undefined_symbols="-ius"
1580 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
1586 aros_target_arch="mac"
1587 aros_shared_default="no"
1588 case "$target_cpu" in
1590 aros_target_cpu="m68k"
1591 aros_object_format="m68kelf"
1592 aros_flavour="mac68knative"
1593 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1594 aros_nominal_width=512
1595 aros_nominal_height=384
1596 aros_nominal_depth=8
1597 aros_target_ar_flags="cru"
1598 aros_compiler_libs="-lgcc1"
1599 aros_shared_default=no
1600 aros_shared_cflags="-fpic"
1601 aros_shared_aflags=""
1602 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1603 aros_kernel_ldflags="-Wl,-rpath,./lib"
1604 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
1605 aros_debug_aflags=""
1606 aros_debug_ldflags="$aros_symbols_debug"
1607 aros_mungwall_debug="0"
1608 aros_modules_debug="0"
1609 gcc_target_cpu="mc68000"
1610 ignore_undefined_symbols="-ius"
1613 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
1619 AC_MSG_ERROR([Unsupported target architecture $target])
1623 #-----------------------------------------------------------------------------
1624 crosstools_guess="yes"
1625 aros_target_toolchain="no"
1626 aros_config_sysroot=""
1627 aros_kernel_sysroot=""
1629 AC_MSG_CHECKING([Kernel toolchain prefix])
1630 AC_ARG_WITH(kernel-toolchain-prefix,AC_HELP_STRING([--with-kernel-toolchain-prefix=...],[Specify crosscompile toolchain prefix for kernel objects]),[kernel_tool_prefix="$withval"])
1631 AC_MSG_RESULT($kernel_tool_prefix)
1633 AC_MSG_CHECKING([ELF toolchain prefix])
1634 AC_ARG_WITH(elf-toolchain-prefix,AC_HELP_STRING([--with-elf-toolchain-prefix=...],[Specify crosscompile toolchain prefix to wrap for AROS objects]),[elf_tool_prefix="$withval"
1635 crosstools_guess="no"])
1636 AC_MSG_RESULT($elf_tool_prefix)
1638 AC_MSG_CHECKING([AROS toolchain prefix])
1639 AC_ARG_WITH(aros-toolchain,AC_HELP_STRING([--with-aros-toolchain=PREFIX],[Specify prebuilt AROS toolchain. Use yes for default name]),[aros_tool_prefix="$withval"
1640 crosstools_guess="no"])
1641 if test "$aros_tool_prefix" = "yes" ; then
1642 aros_tool_prefix=$aros_target_cpu-aros-
1644 AC_MSG_RESULT($aros_tool_prefix)
1646 #-----------------------------------------------------------------------------
1647 # Checking if we should build crosstools..
1648 AC_MSG_CHECKING([whether to build crosstools])
1649 AC_ARG_ENABLE(crosstools,AC_HELP_STRING([--disable-crosstools],[Do not build cross-compiler toolchain]),crosstools="$enableval",crosstools="$crosstools_guess")
1650 AC_MSG_RESULT($crosstools)
1652 if test "${crosstools}" = "yes"; then
1653 if test "${crosstools_guess}" = "no"; then
1654 AC_MSG_ERROR([Cannot build external toolchain if an external ELF or AROS toolchain is specified])
1658 if test "${crosstools}" = "yes" || test "${crosstools_guess}" = "no"; then
1659 aros_target_toolchain="yes"
1662 AC_MSG_CHECKING([where to install the crosstools binaries])
1663 AC_ARG_WITH(aros-toolchain-install,AC_HELP_STRING([--with-aros-toolchain-install=DIR],[Where to install or search for cross tools binaries]),[aros_toolchain_install=$withval])
1664 if test "x$aros_toolchain_install" = "x"; then
1665 AROS_CROSSTOOLSDIR="$AROS_BUILDDIR_UNIX/bin/$aros_host_arch-$aros_host_cpu/tools/crosstools"
1667 AROS_CROSSTOOLSDIR="$aros_toolchain_install"
1668 PATH="$AROS_CROSSTOOLSDIR:$PATH"
1669 if test "$crosstools_guess" = "no" ; then
1670 toolchain_needs_sysroot=yes
1672 if test "x-$aros_flavour" != "x-emulation" -a "x-$aros_flavour" != "x-emulcompat" ; then
1673 aros_kernel_sysroot = $aros_config_sysroot
1677 AC_MSG_RESULT($AROS_CROSSTOOLSDIR)
1679 AC_MSG_CHECKING([If we need to use --sysroot])
1680 if test "$toolchain_needs_sysroot" = "yes" ; then
1681 aros_config_sysroot="--sysroot $AROS_BUILDDIR_UNIX/bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development"
1683 AC_MSG_RESULT($toolchain_needs_sysroot)
1685 #-----------------------------------------------------------------------------
1686 if test "$aros_toolchain" = "gnu" ; then
1687 AC_MSG_CHECKING([what specific target binutils version to use])
1689 AC_ARG_WITH(binutils-version,AC_HELP_STRING([--with-binutils-version=VERSION],[Use binutils-VERSION for building AROS]),use_binutils_version="$withval",use_binutils_version="")
1690 if test "$use_binutils_version" = ""; then
1691 target_binutils_version="$default_binutils_version"
1693 target_binutils_version="$use_binutils_version"
1695 if test "$aros_toolchain" = "gnu" ; then
1696 AC_MSG_RESULT($target_binutils_version)
1700 # Helper to identify gcc version
1701 AC_DEFUN([CROSS_GCC_VERSION], [
1702 target_gcc_version=""
1703 AC_CACHE_CHECK([gcc version],[ax_cv_gcc_version],[
1704 ax_cv_gcc_version="`$AROS_CROSSTOOLSDIR/${aros_tool_prefix}${toolchain_cpp_preprocessor} -dumpversion`"
1705 AS_IF([test "x$ax_cv_gcc_version" = "x"],[
1706 ax_cv_gcc_version=""
1709 target_gcc_version=$ax_cv_gcc_version
1710 AC_SUBST([target_gcc_version])
1713 #-----------------------------------------------------------------------------
1714 if test "$aros_toolchain" = "gnu" ; then
1715 AC_MSG_CHECKING([what specific target gcc version to use])
1717 AC_ARG_WITH(gcc-version,AC_HELP_STRING([--with-gcc-version=VERSION],[Compile gcc-VERSION for AROS]),use_gcc_version="$withval",use_gcc_version="")
1718 if test "$use_gcc_version" = ""; then
1719 if test "${crosstools}" = "no"; then
1720 if test "x$aros_toolchain_install" != "x"; then
1724 if test "$use_gcc_version" = ""; then
1725 target_gcc_version="$default_gcc_version"
1728 target_gcc_version="$use_gcc_version"
1730 if test "$aros_toolchain" = "gnu" ; then
1731 AC_MSG_RESULT($target_gcc_version)
1733 GCC_VERSION_MAJOR=$(echo $target_gcc_version | cut -d'.' -f1)
1734 GCC_VERSION_MINOR=$(echo $target_gcc_version | cut -d'.' -f2)
1735 GCC_VERSION_PATCH=$(echo $target_gcc_version | cut -d'.' -f3)
1737 gcc_fix_bitfields="false"
1738 if test "$GCC_VERSION_MAJOR" -gt "4" ; then
1739 gcc_fix_bitfields="true"
1741 if test "$GCC_VERSION_MAJOR" -gt "3" ; then
1742 if test "$GCC_VERSION_MINOR" -gt "6" ; then
1743 gcc_fix_bitfields="true"
1748 if test "$gcc_fix_bitfields" = "true" ; then
1749 case "$aros_target_cpu" in
1751 aros_kernel_cflags="$aros_kernel_cflags -mno-ms-bitfields"
1752 aros_target_cflags="$aros_target_cflags -mno-ms-bitfields"
1755 aros_kernel_cflags="$aros_kernel_cflags -mno-ms-bitfields"
1756 aros_target_cflags="$aros_target_cflags -mno-ms-bitfields"
1762 AC_MSG_CHECKING([whether to enable Objective-C suppport])
1763 AC_ARG_ENABLE(objc,AC_HELP_STRING([--enable-objc],[Enable Objectve-C support (default=no)]),objc="$enableval",objc="no")
1764 AC_MSG_RESULT($objc)
1765 if test "x$objc" = "xyes"; then
1768 objc_target="no-objc"
1771 AC_MSG_CHECKING([whether to enable Java suppport])
1772 AC_ARG_ENABLE(java,AC_HELP_STRING([--enable-java],[Enable Java support (default=no)]),java="$enableval",java="no")
1773 AC_MSG_RESULT($java)
1774 if test "x$java" != "xno"; then
1777 java_target="no-java"
1780 spec_obj_format="-m $aros_object_format"
1781 # Now process extra architecture-specific options.
1782 # Currently this is implemented only for ARM. We can specify which minimum CPU and FPU to use,\
1783 # as well as floating-point ABI.
1784 case "$aros_target_cpu" in
1786 dnl x86_64 can build 32 or 64bit code
1787 spec_obj_format="%{!m32:-m elf_x86_64} %{m32:-m elf_i386}"
1790 dnl ARM defaults are: armv6 + vfp (unless overriden in per-target section above)
1791 if test "$gcc_default_cpu" = ""; then
1792 gcc_default_cpu="armv6"
1794 if test "$gcc_default_fpu" = ""; then
1795 gcc_default_fpu="vfp"
1797 if test "$gcc_default_float_abi" = ""; then
1798 if test "$target_cpu" = "armhf"; then
1799 gcc_default_float_abi="hard"
1801 gcc_default_float_abi="softfp"
1805 AC_MSG_CHECKING([Which minimum CPU to use])
1806 AC_ARG_WITH(cpu,AC_HELP_STRING([--with-cpu=<spec>],[Specify minumum CPU (default=$gcc_default_cpu).]),aros_gcc_cpu="$withval",aros_gcc_cpu=$gcc_default_cpu)
1807 AC_MSG_RESULT($aros_gcc_cpu)
1809 AC_MSG_CHECKING([Which minimum FPU to use])
1810 AC_ARG_WITH(fpu,AC_HELP_STRING([--with-fpu=<spec>],[Specify minumum FPU (default=$gcc_default_fpu).]),aros_gcc_fpu="$withval",aros_gcc_fpu=$gcc_default_fpu)
1811 AC_MSG_RESULT($aros_gcc_fpu)
1813 AC_MSG_CHECKING([Which floating point ABI to use])
1814 AC_ARG_WITH(float,AC_HELP_STRING([--with-float=<spec>],[Specify floating point ABI (default=$gcc_default_float_abi).]),aros_gcc_float_abi="$withval",aros_gcc_float_abi=$gcc_default_float_abi)
1815 AC_MSG_RESULT($aros_gcc_float_abi)
1817 AC_MSG_CHECKING([Which ARM mode to use])
1818 if test "$aros_target_cpu_mode" = ""; then
1819 aros_target_cpu_mode="arm32"
1820 AC_MSG_RESULT([Defaulting to $aros_target_cpu_mode])
1822 AC_MSG_RESULT([$aros_target_cpu_mode])
1825 case "$aros_target_cpu_mode" in
1827 gcc_default_mode="arm"
1828 aros_isa_flags="-m$gcc_default_mode -mthumb-interwork -march=$aros_gcc_cpu -mfpu=$aros_gcc_fpu -mfloat-abi=$aros_gcc_float_abi"
1831 AC_MSG_ERROR([ARM 64-bit mode is unsupported])
1834 AC_MSG_ERROR([Thumb1 16-bit mode is unsupported])
1837 AC_MSG_ERROR([Thumb1 16-bit mode is unsupported])
1840 gcc_default_mode="thumb"
1841 # Do not specify -mthumb-interwork as it may add extra code to support arm/thumb interwork
1842 aros_isa_flags="-m$gcc_default_mode -march=$aros_gcc_cpu -mfpu=$aros_gcc_fpu -mfloat-abi=$aros_gcc_float_abi"
1845 AC_MSG_ERROR([Unsupported ARM mode specified $aros_target_cpu_mode])
1849 aros_config_cflags="$aros_config_cflags -fno-asynchronous-unwind-tables -fno-exceptions"
1850 aros_config_aflags="$aros_config_aflags -fno-asynchronous-unwind-tables -fno-exceptions"
1853 aros_isa_flags="-m32 -march=i486"
1854 aros_kernel_cflags="$aros_kernel_cflags $aros_isa_flags"
1855 aros_kernel_ldflags="$aros_kernel_ldflags -m32"
1859 # Some architectures may need custom ELF specs.
1860 if test -f $SRCDIR/config/${aros_object_format}-specs.in; then
1861 elf_specs_in=config/${aros_object_format}-specs.in
1863 elf_specs_in=config/elf-specs.in
1866 # Some compilers (ppc-elf-gcc is known to) have CPU defines in specs
1867 # Since we override specs, we may need to put these defines there
1868 if test "$gcc_target_cpu" != ""; then
1869 gcc_target_cpu="-D__${gcc_target_cpu}__"
1872 AC_MSG_CHECKING([where to download sourcecode for external ports])
1873 AC_ARG_WITH(portssources,AC_HELP_STRING([--with-portssources=DIR],[Where to download sourcecode for external ports]),with_portssrcdir=$withval,with_portssrcdir="default")
1874 if test "$with_portssrcdir" = "default"; then
1875 AROS_PORTSSRCDIR="$AROS_BUILDDIR_UNIX/bin/Sources"
1877 AROS_PORTSSRCDIR="$with_portssrcdir"
1879 AC_MSG_RESULT($AROS_PORTSSRCDIR)
1881 AC_MSG_CHECKING([which bootloader to use])
1882 AC_ARG_WITH(bootloader,AC_HELP_STRING([--with-bootloader=NAME],[Use a specific bootloader]),target_bootloader=$withval,target_bootloader=$target_bootloader)
1883 if test "$target_bootloader" = "none"; then
1884 aros_target_bootloader=""
1886 aros_target_bootloader="$target_bootloader"
1888 AC_MSG_RESULT($target_bootloader)
1890 AC_MSG_CHECKING([which icon-set to use])
1891 AC_ARG_WITH(iconset,AC_HELP_STRING([--with-iconset=NAME],[Use a specific Icon-set (default=Gorilla).]),target_iconset=$withval,target_iconset="default")
1892 if test "$target_iconset" = "default"; then
1893 aros_target_iconset="Gorilla"
1894 target_iconset="default (Gorilla)"
1896 aros_target_iconset="$target_iconset"
1898 AC_MSG_RESULT($target_iconset)
1900 AC_MSG_CHECKING([which GUI Theme to use])
1901 AC_ARG_WITH(theme,AC_HELP_STRING([--with-theme=NAME],[Use a specific GUI Theme]),target_guitheme=$withval,target_guitheme="default")
1902 if test "$target_guitheme" = "default"; then
1903 aros_target_guitheme="Ice"
1905 aros_target_guitheme="$target_guitheme"
1907 AC_MSG_RESULT($aros_target_guitheme)
1909 # Find out if we are cross-compiling (i.e. if we can't use the host compiler
1913 dnl The first case is simple. If we are compiling for another CPU, we are cross-compiling for sure
1914 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
1918 dnl x86-64 toolchains can also produce i386 binaries, given -m32 flag.
1919 dnl The flag itself is given in per-target section, because some targets require to pass it
1920 dnl in a different manner, otherwise some tests fail.
1921 dnl TODO: Justify this.
1922 if test "$aros_host_cpu" == "x86_64" ; then
1923 if test "$aros_target_cpu" == "i386" ; then
1928 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1929 dnl For a hosted build we are cross-compiling if host OS differs from build OS.
1930 dnl TODO: This might get a little bit more tricky if we ever cross-compile ARM-Android-hosted
1931 dnl AROS on ARM Linux, or even vice versa (Linux-hosted ARM AROS building on ARM Android).
1932 dnl ARM ABIs of Linux and Android are not compatible (despite very close), so host_cc can't be
1933 dnl used to build bootstrap for target arch in either case.
1934 dnl For us Android is not a separate OS, but a variant of Linux, so both systems will be
1935 dnl identified as 'linux'. If this ever involves, we'll have to implement some additional check,
1936 dnl perhaps introducing aros_host_variant
1937 if test "$aros_host_arch" != "$aros_target_arch" ; then
1941 dnl For a native build we only care if our host_cc can produce static ELF files. If so, we can use
1942 dnl it as kernel_cc. If not, (e. g. we are on Windows or Darwin), we need a crosscompiler.
1943 if test "$host_cc_elf" = "no" ; then
1948 if test "$cross_compiling" = "no" ; then
1949 kernel_tool_prefix=""
1950 if test "$host_cc_elf" = "yes" ; then
1955 if test "$kernel_tool_version" != ""; then
1956 kernel_tool_version="-$kernel_tool_version"
1959 #######################################################################
1960 ## Compute what toolchains to use, and their paths ##
1961 #######################################################################
1963 # This takes, as input:
1964 # crosstools {yes,no}
1965 # kernel_tool_version {"",[version]}
1966 # target_tool_version {"",[version]}
1967 # kernel_tool_prefix {none,[some-arch-os-]}
1969 # target_tool_prefix ${aros_target_cpu}-aros-
1970 # aros_tool_prefix ${aros_target_cpu}-aros-
1973 # aros_kernel_{cpp,cc,ar,ld,as,ranlib,nm,strip}
1974 # Where the 'kernel' binaries are located
1975 # orig_target_{cpp,cc,ar,ld,as,ranlib,nm,strip}
1976 # Where the 'target' binaries are located
1977 # (not the symlink farm - that is aros_target_*!)
1980 # if crosstools then
1981 # if kernel_tools_prefix = "no-kernel-prefix-"
1982 # aros_kernel_* = crosstools cc paths
1983 # aros_kernel_cc = elf cc wrapper around crosstools cc
1985 # VALIDATE(${kernel_tools_prefix}*)
1986 # aros_kernel_* = ${kernel_tools_prefix}*
1987 # if ${kernel_tools_prefix}cc is an AROS gcc
1988 # aros_kernel_cc = ${kernel_tools_prefix}cc
1990 # aros_kernel_cc = elf cc wrapper around ${kernel_tools_prefix}cc
1994 # orig_target_* = aros built crosstools
1995 # orig_target_cc = elf cc wrapper around crosstools cc
1997 # VALIDATE(${kernel_tools_prefix}*)
1999 # orig_target_* = aros_kernel_*
2000 # if aros_kernel_cc is an AROS gcc
2001 # orig_target_cc = aros_kernel_cc
2003 # orig_target_cc = aros cc wrapper around aros_kernel_cc
2007 if test "$aros_toolchain" = "gnu" ; then
2008 target_tool_prefix="${aros_target_cpu}-aros-"
2009 elif test "$aros_toolchain" = "llvm" ; then
2010 target_tool_prefix="bin/"
2013 if test "$kernel_tool_prefix" != "" ; then
2014 AC_MSG_CHECKING([which kernel tools])
2015 AC_MSG_RESULT([$kernel_tool_prefix]);
2018 if test "$kernel_tool_prefix" = "none" ; then
2019 dnl ELF wrapper can be used only for native bootstrap
2020 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
2021 AC_MSG_ERROR([--with-kernel-toolchain-prefix= is required for this arch])
2024 # Kernel tools required - find them
2025 # Note that 'normally', aros_kernel_* overrides will be
2026 # empty, unless specified in the per-arch sections above.
2027 if test "x$aros_kernel_cpp" = "x"; then
2028 aros_kernel_cpp=${kernel_tool_prefix}${CPP}
2030 AROS_TOOL_KERNEL(aros_kernel_cpp,cpp,$aros_kernel_cpp${kernel_tool_version})
2031 AROS_REQUIRED(cpp,$aros_kernel_cpp)
2032 if test "x$aros_kernel_cc" = "x"; then
2033 aros_kernel_cc=${kernel_tool_prefix}${CC}
2035 AROS_TOOL_KERNEL(aros_kernel_cc,cc,$aros_kernel_cc${kernel_tool_version})
2036 AROS_REQUIRED(cc,$aros_kernel_cc)
2037 if test "x$aros_kernel_cxx" = "x"; then
2038 aros_kernel_cxx=${kernel_tool_prefix}${CXX}
2040 AROS_TOOL_KERNEL(aros_kernel_cxx,cxx,$aros_kernel_cxx${kernel_tool_version})
2041 # If it's set, make sure it's really there
2042 if test "x$aros_kernel_cxx" != "x" ; then
2043 AROS_REQUIRED(cxx,$aros_kernel_cxx)
2045 AROS_TOOL_KERNEL(aros_kernel_ld,ld,$aros_kernel_ld)
2046 AROS_REQUIRED(ld,$aros_kernel_ld)
2047 AROS_TOOL_KERNEL(aros_kernel_as,as,$aros_kernel_as)
2048 AROS_REQUIRED(as,$aros_kernel_as)
2049 AROS_TOOL_KERNEL(aros_kernel_ar,ar,$aros_kernel_ar)
2050 AROS_REQUIRED(ar,$aros_kernel_ar)
2051 AROS_TOOL_KERNEL(aros_kernel_ranlib,ranlib,$aros_kernel_ranlib)
2052 AROS_REQUIRED(ranlib,$aros_kernel_ranlib)
2053 AROS_TOOL_KERNEL(aros_kernel_nm,nm,$aros_kernel_nm)
2054 AROS_REQUIRED(nm,$aros_kernel_nm)
2055 AROS_TOOL_KERNEL(aros_kernel_strip,strip,$aros_kernel_strip)
2056 AROS_REQUIRED(strip,$aros_kernel_strip)
2058 # Objcopy and objdump are not required for the kernel
2059 # toolchain on many architectures.
2060 # So we'll look for them, but not make them strictly required.
2061 AROS_TOOL_KERNEL(aros_kernel_objcopy,objcopy,$aros_kernel_objcopy)
2062 AROS_TOOL_KERNEL(aros_kernel_objdump,objdump,$aros_kernel_objdump)
2063 if test "x${crosstools}" != "xyes" ; then
2064 AROS_REQUIRED(objcopy,$aros_kernel_objcopy)
2065 AROS_REQUIRED(objdump,$aros_kernel_objdump)
2069 AC_MSG_CHECKING([which target tools to use])
2070 if test "$aros_target_toolchain" = "yes"; then
2071 if test "$aros_toolchain" = "llvm" ; then
2074 msg_result=$target_tool_prefix
2076 AC_MSG_RESULT([$msg_result])
2077 # We are building AROS crosstools
2078 tmp_tool_prefix="$AROS_CROSSTOOLSDIR/${target_tool_prefix}"
2079 orig_target_cc="${tmp_tool_prefix}${toolchain_c_compiler}${target_tool_version}"
2080 orig_target_cxx="${tmp_tool_prefix}${toolchain_cxx_compiler}${target_tool_version}"
2081 orig_target_cpp="${tmp_tool_prefix}${toolchain_cpp_preprocessor}"
2082 orig_target_ld="${tmp_tool_prefix}${toolchain_ld}"
2083 orig_target_as="${tmp_tool_prefix}${toolchain_as}"
2084 orig_target_ar="${tmp_tool_prefix}${toolchain_ar}"
2085 orig_target_ranlib="${tmp_tool_prefix}${toolchain_ranlib}"
2086 orig_target_nm="${tmp_tool_prefix}${toolchain_nm}"
2087 orig_target_strip="${tmp_tool_prefix}${toolchain_strip}"
2088 orig_target_objcopy="${tmp_tool_prefix}${toolchain_objcopy}"
2089 orig_target_objdump="${tmp_tool_prefix}${toolchain_objdump}"
2091 # Determine whether AROS or ELF tools should be used
2092 if test "$aros_tool_prefix" = "none"; then
2093 aros_tool_prefix="${elf_tool_prefix}"
2096 AC_MSG_RESULT([$aros_tool_prefix])
2097 # We are *not* building AROS crosstools - use the AROS or ELF tools
2098 AROS_TOOL_TARGET(orig_target_cpp,cpp,${aros_tool_prefix}${toolchain_cpp_preprocessor}${target_tool_version})
2099 AROS_REQUIRED(cpp,$orig_target_cpp)
2100 AROS_TOOL_TARGET(orig_target_cc,gcc,${aros_tool_prefix}${toolchain_c_compiler}${target_tool_version})
2101 AROS_REQUIRED(cc,$orig_target_cc)
2102 AROS_TOOL_TARGET(orig_target_cxx,g++,${aros_tool_prefix}${toolchain_cxx_compiler}${target_tool_version})
2103 AROS_REQUIRED(cxx,$orig_target_cxx)
2104 AROS_TOOL_TARGET(orig_target_ld,gcc,${aros_tool_prefix}${toolchain_ld})
2105 AROS_REQUIRED(ld,$orig_target_ld)
2106 AROS_TOOL_TARGET(orig_target_as,as,aros_tool_prefix}${toolchain_as})
2107 AROS_REQUIRED(as,$orig_target_as)
2108 AROS_TOOL_TARGET(orig_target_ar,ar,${aros_tool_prefix}${toolchain_ar})
2109 AROS_REQUIRED(ar,$orig_target_ar)
2110 AROS_TOOL_TARGET(orig_target_ranlib,ar,${aros_tool_prefix}${toolchain_ranlib})
2111 AROS_REQUIRED(ranlib,$orig_target_ranlib)
2112 AROS_TOOL_TARGET(orig_target_nm,nm,${aros_tool_prefix}${toolchain_nm})
2113 AROS_REQUIRED(nm,$orig_target_nm)
2114 AROS_TOOL_TARGET(orig_target_strip,strip,${aros_tool_prefix}${toolchain_strip})
2115 AROS_REQUIRED(strip,$orig_target_strip)
2116 AROS_TOOL_TARGET(orig_target_objcopy,objcopy,${aros_tool_prefix}${toolchain_objcopy})
2117 AROS_REQUIRED(objcopy,$orig_target_objcopy)
2118 AROS_TOOL_TARGET(orig_target_objdump,objdump,${aros_tool_prefix}${toolchain_objdump})
2119 AROS_REQUIRED(objdump,$orig_target_objdump)
2122 if test "$kernel_tool_prefix" = "none" ; then
2123 # No kernel tools specified
2124 # Assume target tools == kernel tools with ELF wrapper
2125 aros_kernel_cc=$orig_target_cc
2126 aros_kernel_cxx=$orig_target_cxx
2127 aros_kernel_cpp=$orig_target_cpp
2128 aros_kernel_ld=$orig_target_ld
2129 aros_kernel_as=$orig_target_as
2130 aros_kernel_ar=$orig_target_ar
2131 aros_kernel_ranlib=$orig_target_ranlib
2132 aros_kernel_nm=$orig_target_nm
2133 aros_kernel_strip=$orig_target_strip
2134 aros_kernel_objcopy=$orig_target_objcopy
2135 aros_kernel_objdump=$orig_target_objdump
2136 use_kernel_cc_wrapper=yes
2139 # At this point, all aros_kernel_* and aros_target_*
2140 # tools should be set up correctly
2142 CC="$aros_kernel_cc $kernel_tool_flags"
2143 CPP="$aros_kernel_cpp"
2145 #-----------------------------------------------------------------------------
2147 # Find all the tools we need to compile. This could be cross-compiling
2148 # though! If that is the case we use the GNU form of the target and
2149 # simply add this to the front of the binary name. This is rather simple,
2150 # but it should work under most circumstances.
2152 # The default tools are to use the same as the host, but only if the
2153 # host and target CPU are the same. With GCC this is normally enough.
2157 aros_shared_ld="$aros_host_ld"
2159 aros_target_mkdep="$aros_host_mkdep"
2161 # The default tools executables to be linked to.
2162 if test "$rescomp" != ""; then
2163 AC_PATH_PROG(aros_kernel_rescomp,${kernel_tool_prefix}$rescomp)
2164 AROS_REQUIRED($rescomp,$aros_kernel_rescomp)
2167 # Set up the sources for the symlink farm
2168 if test "$crosstools" = "yes"; then
2169 crosstools_target=tools-crosstools
2172 aros_kernel_cc="$aros_kernel_cc $kernel_tool_flags"
2173 aros_kernel_ar="$aros_kernel_ar $aros_kernel_ar_flags"
2175 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/host/config"
2176 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
2177 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
2178 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
2179 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
2180 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
2181 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
2183 # aros_cc_pre is a variable that is added to the front of the compiler name
2184 # in the generated aros-gcc shell script. We need this to enable the cache
2185 # to work across cleaned builds. Also, support DISTCC using the correct
2186 # environment variable.
2189 if test "x${DISTCC}" != "x" ; then
2190 if test "x${CCACHE}" != "x" ; then
2191 aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
2193 aros_cc_pre="${DISTCC} "
2196 if test "x${CCACHE}" != "x" ; then
2197 aros_cc_pre="${CCACHE} "
2201 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
2202 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
2203 AC_SUBST(aros_target_nix_ldflags,-nix)
2204 AC_SUBST(aros_target_detach_ldflags,-detach)
2205 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
2208 AC_SUBST(aros_toolchain)
2209 if test "$aros_target_toolchain" != "yes"; then
2210 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-"
2211 if test "$GCC" = "yes"; then
2212 aros_target_cc_path=`$orig_target_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
2215 # We do not know which c compiler version we are going to build and what we need to know
2216 # here is different for different versions so this will be set later during the
2217 # build of crosstools.
2218 if test "$aros_toolchain" = "gnu" ; then
2219 prefix="$AROS_CROSSTOOLSDIR/${aros_target_cpu}-aros-"
2220 elif test "$aros_toolchain" = "llvm" ; then
2221 prefix="$AROS_CROSSTOOLSDIR/bin/"
2223 aros_target_cc_path=@aros_target_cc_path@
2225 aros_target_cpp="${prefix}${toolchain_cpp_preprocessor}"
2226 aros_target_cc="${prefix}${toolchain_c_compiler}"
2227 aros_target_cxx="${prefix}${toolchain_cxx_compiler}"
2228 aros_target_as="${prefix}${toolchain_as}"
2229 aros_target_ld="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-${toolchain_ld}"
2230 aros_target_ar="${prefix}${toolchain_ar} $aros_target_ar_flags"
2231 aros_target_objcopy="${prefix}${toolchain_objcopy}"
2232 aros_target_objdump="${prefix}${toolchain_objdump}"
2233 aros_target_ranlib="${prefix}${toolchain_ranlib} $aros_target_ranlib_flags"
2234 aros_target_nm="${prefix}${toolchain_nm} $aros_target_nm_flags"
2235 aros_target_strip="${prefix}${toolchain_strip}"
2236 aros_plain_nm="${prefix}${toolchain_nm}"
2237 aros_plain_ar="${prefix}${toolchain_ar}"
2239 AC_ARG_ENABLE(includes,
2240 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
2241 [aros_target_incl=$enable_includes], [aros_target_incl=`$aros_kernel_cc -print-sysroot`/`$aros_kernel_cc --print-sysroot-headers-suffix 2>/dev/null || echo usr/include`])
2243 if test "$aros_kernel_includes" = ""; then
2244 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
2245 aros_kernel_includes="-isystem $aros_target_incl"
2249 if test "$aros_kernel_includes" != "" ; then
2250 dnl find out about the kernel cc's include path
2251 AC_MSG_CHECKING([for the kernel compiler's include path])
2252 if test "$aros_kernel_cc_includes" = "" ; then
2253 # Try to guess where the directory is.
2254 aros_kernel_cc_includes=`dirname \`${aros_kernel_cc} ${aros_kernel_cflags} -print-libgcc-file-name\``/include
2255 if test -d $aros_kernel_cc_includes; then
2256 # Check if there is also an include-fixed directory and add it
2257 # to kernel compiler's include path as it may contain some of
2258 # the headers we need.
2259 if test -d "$aros_kernel_cc_includes"-fixed; then
2260 aros_kernel_cc_includes+=" -isystem $aros_kernel_cc_includes"-fixed
2262 # Check for specific includes directory. Needed for Ubuntu 11.10 and Debian
2268 host_cpu_glibc=${host_cpu}
2271 if test -d "/usr/include/${host_cpu_glibc}-linux-gnu"; then
2272 aros_kernel_cc_includes+=" -isystem /usr/include/${host_cpu_glibc}-linux-gnu"
2275 # The directory doesn't exist, we need to do some more work.
2276 aros_kernel_cc_includes=${PWD}/${aros_gendir}/cc_include
2278 # These are the headers we're looking for.
2279 headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
2280 stddef.h xmmintrin.h iso646.h stdarg.h unwind.h \
2284 for h in $headers; do
2285 # Which other headers are needed by each of the above?
2286 deps=$(echo "#include <$h>" | \
2287 $aros_kernel_cc -E -M - 2>/dev/null | \
2288 sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
2290 # Copy all the needed headers to a directory beneath gendir.
2293 dir=${aros_kernel_cc_includes}$(echo $(dirname $d) | \
2294 sed -n "s,^.*/include\(/.*\),\1,p")
2295 ! test -d $dir && mkdir -p $dir
2296 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
2301 AC_MSG_RESULT($aros_kernel_cc_includes)
2302 # Adding -nostdinc to kernel includes as they are always used together.
2303 aros_kernel_includes="$aros_kernel_includes $aros_target_nostdinc_cflags -isystem $aros_kernel_cc_includes"
2306 if test "$crosstools" != "yes"; then
2307 dnl find out about the target cc's include path
2308 AC_MSG_CHECKING([for the target compiler's include path])
2309 if test "$aros_target_cc_includes" = "" ; then
2310 #try to guess where the directory is
2311 aros_target_cc_includes=`dirname \`${orig_target_cc} -print-libgcc-file-name\``/include
2312 if ! test -d $aros_target_cc_includes; then
2313 #the directory doesn't exist, we need to do some more work
2314 aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
2316 #these are the headers we're looking for
2317 headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
2318 stddef.h xmmintrin.h iso646.h stdarg.h unwind.h \
2322 for h in $headers; do
2323 #which other headers each of the above headers needs?
2324 deps=$(echo "#include <$h>" | \
2325 $orig_target_cc -E -M - 2>/dev/null | \
2326 sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
2328 #copy all the needed headers to a directory beneath gendir
2331 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
2332 sed -n "s,^.*/include\(/.*\),\1,p")
2333 ! test -d $dir && mkdir -p $dir
2334 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
2339 AC_MSG_RESULT($aros_target_cc_includes)
2341 # We do not know which c compiler version we are going to build and what we need to know
2342 # here is different for different versions so this will be set later during the
2343 # build of crosstools.
2344 aros_target_cc_includes=@aros_target_cc_includes@
2348 # For GCC < 4.0 -I- is used for giving the search path for '#include "..."'
2349 # On GCC >= 4.0 -iquote should be used
2353 save_cflags="$CFLAGS"
2355 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
2356 if test "x-$crosstools" != "x-yes"; then
2357 AC_TRY_COMPILE(,, has_iquote="yes", has_iquote="no")
2359 # we do know it is supported for the smallest version of ${toolchain_c_compiler} we are going to build
2360 # we assume it's also supported by later versions
2363 AC_MSG_RESULT($has_iquote)
2364 if test "x-$has_iquote" = "x-yes" ; then
2365 host_cflags_iquote=-iquote
2366 host_cflags_iquote_end=
2368 host_cflags_iquote=-I
2369 host_cflags_iquote_end=-I-
2371 kernel_cflags_iquote=$host_cflags_iquote
2372 kernel_cflags_iquote_end=$host_cflags_iquote_end
2373 if test "x-$cross_compiling" = "x-yes"; then
2374 CC="$aros_kernel_cc"
2375 AC_MSG_CHECKING([whether ${CC} accepts -fno-stack-protector])
2376 if test "x-$crosstools" != "x-yes"; then
2377 AC_TRY_COMPILE(,, use_no_stack_protector="yes", use_no_stack_protector="no")
2379 # we do know it is supported for the smallest version of gcc we are going to build
2380 # we assume it's also supported by later versions
2381 use_no_stack_protector=yes
2383 AC_MSG_RESULT($use_no_stack_protector)
2384 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
2385 if test "x-$crosstools" != "x-yes"; then
2386 AC_TRY_COMPILE(,, has_iquote="yes", has_iquote="no")
2388 # we do know it is supported for the smallest version of gcc we are going to build
2389 # we assume it's also supported by later versions
2392 AC_MSG_RESULT($has_iquote)
2393 if test "x-$has_iquote" = "x-yes" ; then
2394 kernel_cflags_iquote=-iquote
2395 kernel_cflags_iquote_end=
2397 kernel_cflags_iquote=-I
2398 kernel_cflags_iquote_end=-I-
2401 aros_cflags_iquote=$kernel_cflags_iquote
2402 aros_cflags_iquote_end=$kernel_cflags_iquote_end
2403 if test "$orig_target_cc" != "$aros_kernel_cc"; then
2404 CC="$orig_target_cc"
2405 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
2406 if test "x-$crosstools" != "x-yes"; then
2407 AC_TRY_COMPILE(,, has_iquote="yes", has_iquote="no")
2409 # we do know it is supported for the smallest version of gcc we are going to build
2410 # we assume it's also supported by later versions
2413 AC_MSG_RESULT($has_iquote)
2414 if test "x-$has_iquote" = "x-yes" ; then
2415 aros_cflags_iquote=-iquote
2416 aros_cflags_iquote_end=
2418 aros_cflags_iquote=-I
2419 aros_cflags_iquote_end=-I-
2422 if test "x-$use_no_stack_protector" = "x-yes" ; then
2423 aros_kernel_cflags="$aros_kernel_cflags -fno-stack-protector"
2426 #-----------------------------------------------------------------------------
2428 # Check if we can explicitly choose older version of symbol hashing
2430 CFLAGS="save_cflags -Wl,--hash-style=sysv"
2431 CC="$aros_kernel_cc"
2432 AC_MSG_CHECKING([whether ${CC} accepts -Wl,--hash-style=sysv])
2433 AC_TRY_LINK(,, use_hash_style="yes", use_hash_style="no")
2434 AC_MSG_RESULT($use_hash_style)
2435 if test "x-$use_hash_style" = "x-yes" ; then
2436 aros_kernel_cflags="$aros_kernel_cflags -Wl,--hash-style=sysv"
2439 CFLAGS="$save_cflags"
2441 AC_SUBST(host_cflags_iquote)
2442 AC_SUBST(host_cflags_iquote_end)
2443 AC_SUBST(kernel_cflags_iquote)
2444 AC_SUBST(kernel_cflags_iquote_end)
2445 AC_SUBST(aros_cflags_iquote)
2446 AC_SUBST(aros_cflags_iquote_end)
2449 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
2450 AC_MSG_CHECKING([for default resolution of WBScreen])
2451 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
2452 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
2453 if test "$resolution" = "yes" ; then
2456 if test "$resolution" = "no" ; then
2459 if test "$resolution" != "none" ; then
2460 aros_nominal_width=`echo $resolution | cut -d'x' -f1`
2461 aros_nominal_height=`echo $resolution | cut -d'x' -f2`
2462 aros_nominal_depth=`echo $resolution | cut -d'x' -f3`
2464 AC_MSG_RESULT($aros_nominal_width x $aros_nominal_height x $aros_nominal_depth)
2465 aros_cv_nominal_width=$aros_nominal_width
2466 aros_cv_nominal_height=$aros_nominal_height
2467 aros_cv_nominal_depth=$aros_nominal_depth
2469 dnl See if the user wants the serial debug output for native flavour
2470 AC_MSG_CHECKING([whether serial debug is enabled])
2471 AC_ARG_WITH(serial-debug,AC_HELP_STRING([--with-serial-debug],[Enable serial debug output in native (default=no)]),serial_debug=$withval,serial_debug=none)
2472 if test "$aros_serial_debug" = 0 ; then
2473 serial_debug_forced=""
2474 if test "$serial_debug" = "yes" ; then
2477 if test "$serial_debug" = "no" ; then
2481 serial_debug_forced="(forced)"
2482 serial_debug=$aros_serial_debug
2484 if test "$serial_debug" != "none" ; then
2485 aros_serial_debug=$serial_debug
2486 AC_MSG_RESULT($serial_debug_forced on port $serial_debug)
2491 dnl See if the user wants the palm debug output hack for palm native flavour
2492 AC_MSG_CHECKING([whether palm debug hack is enabled])
2493 AC_ARG_ENABLE(palm_debug_hack,AC_HELP_STRING([--enable-palm-debug-hack],[Enable palm debug output hack in palm native (default=no)]),palm_debug_hack="yes",palm_debug_hack="no")
2494 if test "$palm_debug_hack" = "yes" ; then
2495 aros_palm_debug_hack="1"
2497 AC_MSG_RESULT($palm_debug_hack)
2499 dnl See if dev wants the usb3.0 code
2500 AC_MSG_CHECKING([whether usb3.0 code is enabled])
2501 AC_ARG_ENABLE(usb30_code,AC_HELP_STRING([--enable-usb30-code],[Enable usb3.0 code (default=no)]),usb30_code="yes",usb30_code="no")
2502 if test "$usb30_code" = "yes" ; then
2503 aros_config_cflags="$aros_config_cflags -DAROS_USB30_CODE"
2504 aros_kernel_cflags="$aros_kernel_cflags -DAROS_USB30_CODE"
2506 AC_MSG_RESULT($usb30_code)
2508 dnl See if the user wants nesting supervisor activated for unix flavour
2509 AC_MSG_CHECKING([whether nesting supervisor support is enabled])
2510 AC_ARG_ENABLE(nesting_supervisor,AC_HELP_STRING([--enable-nesting-supervisor],[Enable nesting supervisor support in unix (default=no)]),nesting_supervisor="yes",nesting_supervisor="no")
2511 if test "$nesting_supervisor" = "yes" ; then
2512 aros_nesting_supervisor="1"
2514 AC_MSG_RESULT($nesting_supervisor)
2516 dnl See if the user wants to disable MMU support
2517 dnl This can be overriden on per-target basis,
2518 dnl set $aros_enable_mmu to "yes" or "no" to do this
2519 if test "$aros_enable_mmu" = "" ; then
2520 AC_MSG_CHECKING([whether MMU support is enabled])
2521 dnl Enabled by default
2522 AC_ARG_ENABLE(mmu,AC_HELP_STRING([--disable-mmu],[Disable MMU support (default=enabled)]),aros_enable_mmu=$enableval,aros_enable_mmu="yes")
2523 if test "$aros_enable_mmu" = "" ; then
2524 aros_enable_mmu="yes"
2526 AC_MSG_RESULT($aros_enable_mmu)
2528 if test "$aros_enable_mmu" = "no" ; then
2535 dnl things specifically required for hosted flavours
2536 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
2538 if test "x-$need_dlopen" != "x-no" ; then
2541 dnl some kind of dynamic library access system is required for hostlib.resource
2542 AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
2543 if test "x-$have_dl" = "x-no" ; then
2544 AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
2545 aros_host_ldflags="$aros_host_ldflags -ldl"],
2548 if test "x-$have_dl" = "x-no" ; then
2549 AC_MSG_ERROR([dlopen() dynamic linker functions not available])
2556 AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
2557 [build X11 hidd for hosted (default=auto)]),
2558 x11_hidd="$enableval",
2559 x11_hidd="$need_x11")
2560 case "x-$x11_hidd" in
2561 x-yes|x-no|x-auto) ;;
2562 *) x11_hidd="$need_x11" ;;
2568 if test "x-$x11_hidd" != "x-no" ; then
2574 for path in $x_libraries
2576 x_cflags="$x_cflags -L$path"
2579 for path in $x_includes
2581 x_cflags="$x_cflags -I$path"
2584 if test "x-$no_x" = "x-yes" ; then
2587 if test "x-$x11_hidd" != "x-auto" ; then
2588 dnl and they explicitly asked for it, bail out
2589 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
2593 dnl found it, setup the metatarget
2597 dnl setup shared memory extensions
2598 AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
2599 [use X11 shared memory (default=auto)]),
2600 x11_hidd_shm="$enableval",
2601 x11_hidd_shm="auto")
2602 case "x-$x11_hidd_shm" in
2603 x-yes|x-no|x-auto) ;;
2604 *) x11_hidd_shm="auto" ;;
2610 if test "x-$x11_hidd_shm" != "x-no" ; then
2612 dnl system shm headers
2613 AC_CHECK_HEADERS(sys/ipc.h)
2614 AC_CHECK_HEADERS(sys/shm.h)
2617 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
2619 dnl make sure X libs have shm functions
2620 save_cflags="$CFLAGS"
2621 CFLAGS="$CFLAGS $x_cflags"
2622 AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
2623 CFLAGS="$save_cflags"
2627 dnl detection done, prepare output
2628 if test "x-$have_xshm" = "x-yes" ; then
2631 elif test "x-$x11_hidd_shm" = "x-yes" ; then
2632 dnl they explicitly asked for it, but we can't do it
2633 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
2635 dnl otherwise just disable it
2640 dnl setup vidmode (fullscreen) extensions
2641 AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
2642 [use X11 vidmode extension (default=auto)]),
2643 x11_hidd_vidmode="$enableval",
2644 x11_hidd_vidmode="auto")
2645 case "x-$x11_hidd_vidmode" in
2646 x-yes|x-no|x-auto) ;;
2647 *) x11_hidd_vidmode="auto" ;;
2653 if test "x-$x11_hidd_vidmode" != "x-no" ; then
2655 dnl make sure X libs have vidmode functions
2656 save_cflags="$CFLAGS"
2657 CFLAGS="$CFLAGS $x_cflags"
2658 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
2659 CFLAGS="$save_cflags"
2662 dnl detection done, prepare output
2663 if test "x-$have_vidmode" = "x-yes" ; then
2664 dnl we can do vidmode
2665 DO_VIDMODE_SUPPORT="1"
2666 elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
2667 dnl they explicitly asked for it, but we can't do it
2668 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
2670 dnl otherwise just disable it
2671 DO_VIDMODE_SUPPORT="0"
2675 aros_host_x11_includes=$x_includes
2676 aros_host_x11_libdirs=$x_libraries
2681 AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
2682 [build SDL hidd for hosted (default=auto)]),
2683 sdl_hidd="$enableval",
2685 case "x-$sdl_hidd" in
2686 x-yes|x-no|x-auto) ;;
2687 *) sdl_hidd="auto" ;;
2691 if test "x-$sdl_hidd" != "x-no" ; then
2695 AM_PATH_SDL($SDL_VERSION, [have_sdl="yes"],
2698 if test "x-$have_sdl" != "x-yes" ; then
2701 if test "x-$sdl_hidd" != "x-auto" ; then
2702 dnl and they explicitly asked for it, bail out
2703 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
2707 dnl found it, enable the build
2709 aros_host_sdl_cflags=$SDL_CFLAGS
2710 aros_host_sdl_libs=$SDL_LIBS
2717 dnl See if the user wants dbus.library
2718 AC_MSG_CHECKING([whether building of dbus.library is enabled])
2719 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
2720 if test "$dbus" = "yes" ; then
2722 DBUS_CFLAGS=`pkg-config --cflags dbus-1`
2723 DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
2724 KERNEL_DBUS_KOBJ=kernel-dbus-kobj
2725 KERNEL_DBUS_INCLUDES=kernel-dbus-includes
2729 AC_MSG_RESULT($dbus)
2731 if test "$use_kernel_cc_wrapper" = "yes" ; then
2732 aros_kernel_cc="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-elf-${toolchain_c_compiler}"
2735 dnl --------------------------------------------------------------------
2736 dnl Configuration Output Section
2737 dnl --------------------------------------------------------------------
2742 AC_SUBST(aros_flavour)
2743 AC_SUBST(aros_flavour_uc)
2744 AC_SUBST(aros_target_toolchain)
2745 AC_SUBST(aros_build_host)
2746 AC_SUBST(AROS_BUILDDIR)
2747 AC_SUBST(AROS_BUILDDIR_UNIX)
2749 AC_SUBST(AROS_CROSSTOOLSDIR)
2750 AC_SUBST(AROS_PORTSSRCDIR)
2752 # Compatability with other Amiga-like operation systems
2753 AC_SUBST(aros_amigaos_compliance)
2756 AC_SUBST(aros_cc_pre)
2757 AC_SUBST(aros_host_strip)
2758 AC_SUBST(aros_host_arch)
2759 AC_SUBST(aros_host_cpu)
2760 AC_SUBST(aros_host_cpp)
2761 AC_SUBST(aros_host_def_cc)
2762 AC_SUBST(aros_host_cc)
2763 AC_SUBST(aros_host_cxx)
2764 AC_SUBST(aros_host_ar)
2765 AC_SUBST(aros_host_ranlib)
2766 AC_SUBST(aros_host_ld)
2767 AC_SUBST(aros_host_make)
2768 AC_SUBST(aros_host_cflags)
2769 AC_SUBST(aros_host_cxxflags)
2770 AC_SUBST(gnu89_inline)
2771 AC_SUBST(aros_host_ldflags)
2772 AC_SUBST(aros_host_debug)
2773 AC_SUBST(aros_host_mkdep)
2774 AC_SUBST(aros_host_mkargs)
2775 AC_SUBST(aros_host_exe_suffix)
2776 AC_SUBST(aros_host_lib_suffix)
2777 AC_SUBST(aros_tools_dir)
2778 AC_SUBST(aros_host_aclocal)
2779 AC_SUBST(aros_host_autoconf)
2780 AC_SUBST(aros_host_autoheader)
2781 AC_SUBST(aros_host_automake)
2785 AC_SUBST(aros_target_guitheme)
2786 AC_SUBST(aros_target_iconset)
2787 AC_SUBST(aros_target_bootloader)
2788 AC_SUBST(aros_target_arch)
2789 AC_SUBST(aros_target_family)
2790 AC_SUBST(aros_target_cpu)
2791 AC_SUBST(aros_target_cpu_mode)
2792 AC_SUBST(aros_target_variant)
2793 AC_SUBST(aros_target_suffix)
2794 AC_SUBST(aros_target_ar)
2795 AC_SUBST(aros_target_ranlib)
2796 AC_SUBST(aros_plain_nm)
2797 AC_SUBST(aros_plain_ar)
2798 AC_SUBST(aros_kernel_ar)
2799 AC_SUBST(aros_kernel_ranlib)
2800 AC_SUBST(orig_target_cc)
2801 AC_SUBST(aros_target_cc)
2802 AC_SUBST(aros_kernel_cc)
2803 AC_SUBST(orig_target_cxx)
2804 AC_SUBST(aros_target_cxx)
2805 AC_SUBST(aros_kernel_cxx)
2806 AC_SUBST(orig_target_cpp)
2807 AC_SUBST(aros_target_cpp)
2808 AC_SUBST(aros_kernel_cpp)
2809 AC_SUBST(orig_target_as)
2810 AC_SUBST(aros_target_as)
2811 AC_SUBST(aros_kernel_as)
2812 AC_SUBST(orig_target_ld)
2813 AC_SUBST(aros_target_ld)
2814 AC_SUBST(aros_kernel_ld)
2815 AC_SUBST(aros_target_cc_includes)
2816 AC_SUBST(aros_target_cc_path)
2817 AC_SUBST(aros_target_objdump)
2818 AC_SUBST(aros_target_objcopy)
2819 AC_SUBST(aros_target_strip)
2820 AC_SUBST(aros_target_nm)
2821 AC_SUBST(aros_kernel_rescomp)
2822 AC_SUBST(aros_shared_default)
2823 AC_SUBST(aros_shared_ld)
2824 AC_SUBST(aros_object_format)
2825 AC_SUBST(spec_obj_format)
2826 AC_SUBST(aros_compiler_libs)
2827 AC_SUBST(aros_arch_libs)
2829 AC_SUBST(aros_shared_cflags)
2830 AC_SUBST(aros_shared_aflags)
2831 AC_SUBST(aros_shared_ldflags)
2833 AC_SUBST(aros_config_sysroot)
2834 AC_SUBST(aros_nowarn_flags)
2835 AC_SUBST(aros_config_cflags)
2836 AC_SUBST(aros_config_aflags)
2837 AC_SUBST(aros_config_ldflags)
2839 AC_SUBST(aros_kernel_sysroot)
2840 AC_SUBST(aros_kernel_cflags)
2841 AC_SUBST(aros_kernel_includes)
2842 AC_SUBST(aros_kernel_objcflags)
2843 AC_SUBST(aros_kernel_ldflags)
2844 AC_SUBST(aros_target_cflags)
2845 AC_SUBST(aros_debug_cflags)
2846 AC_SUBST(aros_debug_aflags)
2847 AC_SUBST(aros_debug_ldflags)
2848 AC_SUBST(aros_target_genmap)
2849 AC_SUBST(aros_target_strip_flags)
2850 AC_SUBST(aros_optimization_cflags)
2851 AC_SUBST(aros_isa_flags)
2853 AC_SUBST(crosstools_target)
2854 AC_SUBST(crosstools_cxx_target)
2856 # Hosted Graphics Related
2857 AC_SUBST(host_x_gfx)
2858 AC_SUBST(host_sdl_gfx)
2859 AC_SUBST(host_android_gfx)
2861 AC_SUBST(pci_hidd_target)
2863 AC_SUBST(aros_nominal_width)
2864 AC_SUBST(aros_nominal_height)
2865 AC_SUBST(aros_nominal_depth)
2866 AC_SUBST(DO_XSHM_SUPPORT)
2867 AC_SUBST(DO_VIDMODE_SUPPORT)
2869 AC_SUBST(aros_host_x11_includes)
2870 AC_SUBST(aros_host_x11_libdirs)
2871 AC_SUBST(aros_host_sdl_cflags)
2872 AC_SUBST(aros_host_sdl_libs)
2874 # Native version related
2875 AC_SUBST(aros_serial_debug)
2876 AC_SUBST(ENABLE_EXECSMP)
2878 # Palm native version related
2879 AC_SUBST(aros_palm_debug_hack)
2881 # Unix/Hosted version related
2882 AC_SUBST(aros_nesting_supervisor)
2885 AC_SUBST(aros_enable_mmu)
2888 AC_SUBST(aros_ios_platform)
2889 AC_SUBST(aros_ios_version)
2890 AC_SUBST(aros_ios_sdk)
2892 # ARM default GCC target related
2893 AC_SUBST(gcc_default_cpu)
2894 AC_SUBST(gcc_default_cpu_tune)
2895 AC_SUBST(gcc_default_fpu)
2896 AC_SUBST(gcc_default_float_abi)
2897 AC_SUBST(gcc_default_mode)
2900 AC_SUBST(android_tool)
2901 AC_SUBST(aros_android_level)
2902 AC_SUBST(aros_android_antapk)
2905 AC_SUBST(ENABLE_DBUS)
2906 AC_SUBST(DBUS_CFLAGS)
2907 AC_SUBST(DBUS_LIBFLAGS)
2908 AC_SUBST(KERNEL_DBUS_KOBJ)
2909 AC_SUBST(KERNEL_DBUS_INCLUDES)
2912 AC_SUBST(ENABLE_X11)
2915 AC_SUBST(aros_debug)
2916 AC_SUBST(aros_mungwall_debug)
2917 AC_SUBST(aros_stack_debug)
2918 AC_SUBST(aros_modules_debug)
2920 # Collect-aros stuff: "-ius" to ignore undefined symbols
2921 AC_SUBST(ignore_undefined_symbols)
2923 # C compiler related
2924 AC_SUBST(gcc_target_cpu)
2925 AC_SUBST(target_binutils_version)
2926 AC_SUBST(target_gcc_version)
2928 #ObjC compiler related
2929 AC_SUBST(objc_target)
2932 AC_SUBST(java_target)
2935 AC_SUBST(aros_usb30_code)
2937 dnl Prepare for output, make up all the generated patches
2938 case "$aros_flavour" in
2939 emulation) aros_flavour_uc="AROS_FLAVOUR_EMULATION"
2940 aros_flavour="emulation" ;;
2941 emulcompat) aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
2942 aros_flavour="emulation" ;;
2943 standalone) aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
2944 aros_flavour="standalone";;
2945 standcompat) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
2946 aros_flavour="standalone";;
2947 native) aros_flavour_uc="AROS_FLAVOUR_NATIVE"
2948 aros_flavour="native" ;;
2949 nativecompat) aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
2950 aros_flavour="native" ;;
2951 linklib) aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
2952 aros_flavour="linklib" ;;
2953 palmnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
2954 aros_flavour="palmnative" ;;
2955 mac68knative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
2956 aros_flavour="mac68knative" ;;
2957 ppcnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
2958 aros_flavour="ppcnative" ;;
2961 if test ! -d ${aros_inc_dir} ; then
2962 ${MKDIR} ${aros_inc_dir}
2964 if test ! -d ${aros_geninc_dir} ; then
2965 ${MKDIR} ${aros_geninc_dir}
2967 if test ! -d ${aros_hostcfg_dir} ; then
2968 ${MKDIR} ${aros_hostcfg_dir}
2970 if test ! -d ${aros_targetcfg_dir} ; then
2971 ${MKDIR} ${aros_targetcfg_dir}
2973 if test ! -d ${aros_tools_dir} ; then
2974 ${MKDIR} ${aros_tools_dir}
2976 if test ! -d ${aros_scripts_dir} ; then
2977 ${MKDIR} ${aros_scripts_dir}
2980 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
2982 # Generic build tools (metamake, etc)
2983 AC_CONFIG_COMMANDS([genmf-executable-support],
2984 [chmod a+x ${aros_tools_dir}/genmf.py],
2985 [aros_tools_dir=${aros_tools_dir}]
2990 ${aros_inc_dir}/config.h:config/config.h.in
2991 ${aros_geninc_dir}/config.h:config/config.h.in
2992 ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
2993 ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
2994 ${aros_targetcfg_dir}/build.cfg:config/build.cfg.in
2996 ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
2997 ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
2998 tools/collect-aros/env.h
3002 AC_CONFIG_COMMANDS([binutils-support],
3004 prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
3006 prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
3008 chmod a+x ${prefix2}-ld
3010 ln -sf $orig_target_as$aros_host_exe_suffix ${prefix2}-as$aros_host_exe_suffix
3011 ln -sf $orig_target_nm$aros_host_exe_suffix ${prefix2}-nm$aros_host_exe_suffix
3012 ln -sf $orig_target_ar$aros_host_exe_suffix ${prefix2}-ar$aros_host_exe_suffix
3013 ln -sf $orig_target_ranlib$aros_host_exe_suffix ${prefix2}-ranlib$aros_host_exe_suffix
3014 ln -sf $orig_target_objcopy$aros_host_exe_suffix ${prefix2}-objcopy$aros_host_exe_suffix
3015 ln -sf $orig_target_objdump$aros_host_exe_suffix ${prefix2}-objdump$aros_host_exe_suffix
3016 ln -sf $orig_target_strip$aros_host_exe_suffix ${prefix2}-strip$aros_host_exe_suffix
3019 aros_host_exe_suffix=${aros_host_exe_suffix}
3020 aros_tools_dir=${aros_tools_dir}
3021 aros_target_cpu=${aros_target_cpu}
3022 aros_target_arch=${aros_target_arch}
3023 aros_target_suffix=${aros_target_suffix}
3024 orig_target_nm=${orig_target_nm}
3025 orig_target_as=${orig_target_as}
3026 orig_target_ar=${orig_target_ar}
3027 orig_target_ranlib=${orig_target_ranlib}
3028 orig_target_objdump=${orig_target_objdump}
3029 orig_target_objcopy=${orig_target_objcopy}
3030 orig_target_strip=${orig_target_strip}
3031 aros_kernel_ld=${aros_kernel_ld}
3035 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
3038 # Bare Elf support script and spec
3039 if test "${use_kernel_cc_wrapper}" = "yes"; then
3040 AC_CONFIG_COMMANDS([elf-compiler-support],
3042 prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
3044 prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-elf
3046 chmod a+x ${prefix2}-gcc
3048 ln -sf $aros_kernel_ld$aros_host_exe_suffix ${prefix2}-ld$aros_host_exe_suffix
3051 aros_host_exe_suffix=${aros_host_exe_suffix}
3052 aros_tools_dir=${aros_tools_dir}
3053 aros_target_cpu=${aros_target_cpu}
3054 aros_target_arch=${aros_target_arch}
3055 aros_target_suffix=${aros_target_suffix}
3056 aros_kernel_ld=${aros_kernel_ld}
3060 ${aros_targetcfg_dir}/elf-specs:${elf_specs_in}
3061 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-elf-gcc:scripts/elf-gcc.in
3065 # Host compiler support scripts and spec
3066 if test "${aros_target_toolchain}" = "no"; then
3067 AC_CONFIG_COMMANDS([host-compiler-wrapper-support],
3069 prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
3071 prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
3073 chmod a+x ${prefix2}-${toolchain_c_compiler} ${prefix2}-${toolchain_cxx_compiler} ${prefix2}-${toolchain_cpp_preprocessor}
3076 aros_host_exe_suffix=${aros_host_exe_suffix}
3077 aros_tools_dir=${aros_tools_dir}
3078 aros_target_cpu=${aros_target_cpu}
3079 aros_target_arch=${aros_target_arch}
3080 aros_target_suffix=${aros_target_suffix}
3084 ${aros_targetcfg_dir}/specs:config/specs.in
3085 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-${toolchain_cpp_preprocessor}:scripts/aros-${toolchain_cpp_preprocessor}.in
3086 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-${toolchain_c_compiler}:scripts/aros-${toolchain_c_compiler}.in
3087 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-${toolchain_cxx_compiler}:scripts/aros-${toolchain_cxx_compiler}.in
3092 if test "$aros_target_variant" == "android"; then
3093 AC_CONFIG_FILES(${aros_gendir}/arch/all-android/bootstrap/app/default.properties:arch/all-android/bootstrap/app/default.properties.in)
3097 AC_CONFIG_FILES(${aros_targetcfg_dir}/conf.cmake:config/conf.cmake.in)
3101 dnl This is in order to not define SHARED_CFLAGS sometimes
3102 dnl We don't always do aros_shared_ar, aros_shared_cflags
3104 #XXX compatability...
3105 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
3107 if test -n "$aros_shared_cflags" ; then
3108 echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
3109 echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg