1 dnl Copyright © 1997-2006, The AROS Development Team. All rights reserved.
4 dnl Desc: Autoconf source for configuration file
8 # method of getting shared/non-shared ld/ar tool for target.
11 # ------------------------------------------------------------------------
12 # Here starts the first section of the configure.in file.
13 # ------------------------------------------------------------------------
17 AC_CONFIG_AUX_DIR(scripts/autoconf)
19 # Check what host we are running on.
20 # If a target is not suggested, we use this one.
21 # Note that what we call a target, Autoconf calls a host.
24 # The AROS target is slightly different to the normal GNU style
25 # format. We don't have the middle part, and we reverse the order
26 # of the $(CPU) and $(OS) bits.
28 # Don't strip the version of the target yet, it might be
29 # useful on some systems.
31 AC_MSG_CHECKING([for AROS style target])
33 if test "$target" = "NONE" ; then
34 target=$host_os-$host_cpu
37 if test "$target" = "" ; then
38 target=$host_os-$host_cpu
44 AC_MSG_RESULT($target)
46 #don't know where else to put this...
49 # Parse the target field into something useful.
51 target_os=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\1/'`
52 target_cpu=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\2/'`
55 dnl --------------------------------------------------------------------
56 dnl Set the default Workbench resolution
57 dnl --------------------------------------------------------------------
58 aros_default_wbwidth=800
59 aros_default_wbheight=600
60 aros_default_wbdepth=4
62 dnl --------------------------------------------------------------------
63 dnl Host Configuration Section
64 dnl --------------------------------------------------------------------
66 dnl The idea here is to find out all the information we need about the
67 dnl host. This means things like tools for building directory structures,
68 dnl copying files around and the like.
70 # The first step is to find the host binaries.
71 # Check for a compiler.
76 # Check for a compatible awk
77 AC_CHECK_PROGS(AWK,[gawk nawk])
78 AROS_REQUIRED(gawk,$AWK)
79 AROS_PROG(MMAKE,mmake)
81 # Perform some default variable assignments. Note all of these will be
82 # Regenerated from the script, so there is no need to cache them.
85 AROS_TOOL_CCPATH(aros_host_ld,ld)
86 AROS_REQUIRED(ld,$aros_host_ld)
88 aros_host_cflags=$CFLAGS
89 aros_host_ldflags=$LDFLAGS
90 aros_host_debug="-g -O0"
91 aros_host_mkdep="\$(TOP)/scripts/mkdep"
92 aros_host_mkargs="--no-print-directory"
93 aros_host_incl="/usr/include"
94 aros_host_exe_suffix="$EXEEXT"
95 aros_host_lib_suffix=""
97 AC_CHECK_PROGS(aros_host_aclocal,[aclocal aclocal19])
98 AC_CHECK_PROGS(aros_host_autoconf,[autoconf autoconf259 autoconf253])
99 AC_CHECK_PROGS(aros_host_autoheader,[autoheader autoheader259 autoheader253])
100 AC_CHECK_PROGS(aros_host_automake,[automake automake19])
102 case "$aros_host_cc" in
104 aros_host_cc_pipe="-pipe"
114 dnl Despite the name, this is really a host configuration variable.
115 aros_target_cc_includes=""
117 # This is the main host configuration section. It is where the host
118 # can change the values of any variables it needs to change. We do
119 # not look at anything that compiles to the target yet, we'll get
124 aros_host_arch="linux"
125 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
131 aros_host_cpu="x86_64"
140 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
141 aros_host_cpu="$host_cpu"
147 aros_host_cc="$aros_host_cc $aros_host_cc_pipe -I/usr/local/include"
148 aros_host_make="gmake"
149 aros_host_arch="freebsd"
152 aros_host_ldflags="$aros_host_ldflags -L/usr/local/lib -liconv"
154 dnl Need to override this here, it's just too hard later.
155 dnl This shouldn't be here at all...
156 dnl aros_target_cc_includes="/usr/include"
158 dnl FreeBSD 5.x (and later) has changed the default object format.
159 dnl The double [[]] is necessary to get around m4's quoting rules.
162 aros_object_format="elf_i386"
166 aros_object_format="elf_i386_fbsd"
173 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
174 aros_host_arch="darwin"
183 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
184 aros_host_cpu="$host_cpu"
188 aros_host_ldflags="$aros_host_ldflags -liconv"
193 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
194 aros_host_make="gmake"
195 aros_host_arch="netbsd"
204 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
205 aros_host_cpu="$host_cpu"
208 aros_host_lib_suffix=".0.0"
212 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
213 aros_host_make="gmake"
214 aros_host_arch="openbsd"
220 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
221 aros_host_cpu="$host_cpu"
227 aros_host_arch="solaris"
228 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
231 aros_host_cpu="sparc"
234 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
235 aros_host_cpu="$host_cpu"
241 aros_host_arch="morphos"
246 aros_host_arch="amiga"
251 TOUCH="/gg/bin/touch"
260 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
261 aros_host_cpu="$host_cpu"
267 aros_host_arch="cygwin"
268 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
274 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
275 aros_host_cpu="$host_cpu"
281 aros_host_arch="mingw32"
282 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
288 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
289 aros_host_cpu="$host_cpu"
294 AC_MSG_ERROR([Unsupported host architecture $host])
298 AROS_PROG(aros_host_ar,[ar],[cr])
299 AROS_REQUIRED(ar,$aros_host_ar)
300 AROS_PROG(aros_host_ranlib,ranlib)
301 AROS_REQUIRED(ranlib,$aros_host_ranlib)
302 AROS_PROG(aros_host_strip,strip)
303 AROS_REQUIRED(strip,$aros_host_strip)
305 AROS_PROG(RM,[rm],[-rf])
306 AROS_REQUIRED(rm,$RM)
308 AROS_REQUIRED(cp,$CP)
310 AROS_REQUIRED(mv,$MV)
311 AROS_PROG(ECHO,[echo])
312 AROS_REQUIRED(echo,$ECHO)
313 AROS_PROG(MKDIR,[mkdir],[-p])
314 AROS_REQUIRED(mkdir,$MKDIR)
315 AROS_PROG(TOUCH,[touch])
316 AROS_REQUIRED(touch,$TOUCH)
317 AROS_PROG(SORT,[sort])
318 AROS_REQUIRED(sort,$SORT)
319 AROS_PROG(UNIQ,[uniq])
320 AROS_REQUIRED(uniq,$UNIQ)
321 AROS_PROG(NOP,[true])
322 AROS_REQUIRED(true,$NOP)
324 AROS_REQUIRED(cat,$CAT)
325 AROS_PROG(BISON,[bison])
326 AROS_REQUIRED(bison,$BISON)
327 AROS_PROG(FLEX,[flex])
328 AROS_REQUIRED(flex,$FLEX)
329 AROS_PROG(PNGTOPNM,[pngtopnm])
330 AROS_REQUIRED(pngtopnm,$PNGTOPNM)
331 AROS_PROG(PPMTOILBM,[ppmtoilbm])
332 AROS_REQUIRED(ppmtoilbm,$PPMTOILBM)
334 AROS_REQUIRED(sed,$SED)
335 AROS_PROG(CHMOD,[chmod])
336 AROS_REQUIRED(chmod,$CHMOD)
338 AM_PATH_PYTHON(2.2.1)
345 dnl ---------------------------------------------------------------------------
346 dnl Look for things about the host system, good for hosted targets.
347 dnl ---------------------------------------------------------------------------
349 # Check for some includes for the X11 HIDD and the kernel
350 AC_CHECK_HEADERS([sys/ipc.h sys/shm.h \
351 sys/mmap.h sys/mman.h sysexits.h \
352 sys/statfs.h sys/statvfs.h sys/vfs.h sys/param.h \
355 AC_CHECK_HEADERS([sys/mount.h],,,[#include <sys/param.h>])
372 AC_CHECK_MEMBERS(struct tm.tm_gmtoff)
374 # Look for some functions
375 AC_CHECK_FUNCS([getpagesize kqueue statfs statvfs \
376 clone kse_create rfork_thread thr_create sa_register \
377 getcontext makecontext setcontext sigaltstack swapcontext])
382 dnl --------------------------------------------------------------------
383 dnl Target Configuration Section
384 dnl --------------------------------------------------------------------
386 dnl The target configuration section is responsible for setting up all
387 dnl the paths for includes, and tools required to build AROS to some
388 dnl particular target.
390 aros_config_cflags="-Wall -Werror-implicit-function-declaration"
391 aros_config_aflags="-Wall -x assembler-with-cpp -c"
392 aros_config_ldflags=""
394 aros_shared_default=yes
396 aros_shared_cflags="-fPIC"
397 aros_shared_aflags=""
398 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
399 aros_kernel_ldflags="-Wl,-rpath,./lib"
401 aros_target_ar_flags="cr"
402 aros_target_nm_flags="-C -ul"
403 aros_target_strip_flags="--strip-unneeded -R.comment"
407 aros_target_genmap="-Wl,-Map -Xlinker"
409 # Native flavour stuff
411 aros_serial_debug="0"
413 # Palm native flavour stuff
414 aros_palm_debug_hack="0"
417 aros_nesting_supervisor="0"
419 # Collect-aros stuff: "-ius" to ignore undefined symbols
420 ignore_undefined_symbols=""
422 #-----------------------------------------------------------------------------
425 # GCC 4.1+ has a stack protection feature that requires OS support. Ubuntu has
426 # it switched on by default, and we use the host compiler, so it compiles AROS
427 # code with this enabled resulting in link failures as we don't have support
430 # We use two methods to disable it. For the host compiler (used to compile
431 # some hosted modules), we test to see if the compiler supports stack
432 # protection, and if it does we disable it in AROS_CONFIG_CFLAGS. This should
433 # work on all platforms.
435 # For the "cross" compiler we clear the "ssp_default" spec in config/specs.in
436 # (this is done unconditionally, as it should have no effect on compilers
437 # without the stack protection feature). This may be specific to the way that
438 # Ubuntu enables the feature, so may not work everywhere. My specs-fu isn't
439 # strong enough to disable it in a generic way though, so we'll live with it
440 # until another vendor ships GCC with it enabled in a different way, and deal
444 AC_MSG_CHECKING([whether ${CC} accepts -fno-stack-protector])
445 save_cflags="$CFLAGS"
446 CFLAGS="$CFLAGS -fno-stack-protector"
447 AC_TRY_COMPILE(,, use_no_stack_protector="yes", use_no_stack_protector="no")
448 AC_MSG_RESULT($use_no_stack_protector)
449 if test "x-$use_no_stack_protector" = "x-yes" ; then
450 aros_config_cflags="$aros_config_cflags -fno-stack-protector"
452 CFLAGS="$save_cflags"
454 #-----------------------------------------------------------------------------
456 AC_MSG_CHECKING([for type of build])
457 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")
459 if test "$build_type" = "nightly"; then
460 build_type_string="NIGHTLY"
461 elif test "$build_type" = "snapshot"; then
462 build_type_string="SNAPSHOT"
463 elif test "$build_type" = "milestone"; then
464 build_type_string="MILESTONE"
465 elif test "$build_type" = "release"; then
466 build_type_string="RELEASE"
468 build_type_string="PERSONAL"
469 build_type="personal"
472 aros_config_cflags="$aros_config_cflags -DAROS_BUILD_TYPE=AROS_BUILD_TYPE_$build_type_string"
474 AC_MSG_RESULT($build_type)
476 #-----------------------------------------------------------------------------
477 all_debug_types="messages stack mungwall modules symbols"
479 AC_MSG_CHECKING([which debug types to enable])
480 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)]),
481 debug="$enableval",debug="")
483 if test "$debug" = "" -o "$debug" = "no"; then
485 elif test "$debug" = "yes"; then
489 if test "$debug" = "all" ; then
490 debug=$all_debug_types
491 for d in $all_debug_types; do
492 export aros_${d}_debug="1"
495 for d in $all_debug_types; do
496 export aros_${d}_debug="0"
500 if test "$debug" != "none"; then
501 debug=`echo $debug | sed s/,/\ /g`
504 for d2 in $all_debug_types; do
505 if test "$d2" = "$d"; then
510 if test "$found" = "0"; then
511 AC_MSG_ERROR([unrecognized debug type "$d". Available types are: all none $all_debug_types])
513 export aros_${d}_debug="1"
517 AC_MSG_RESULT($debug)
519 if test "$aros_messages_debug" = "1"; then
520 aros_messages_debug="-DADEBUG=1 -DMDEBUG=1"
522 aros_messages_debug=""
524 if test "$aros_symbols_debug" = "1"; then
525 aros_symbols_debug="-g"
527 aros_symbols_debug=""
530 # These are the flags to pass when compiling debugged programs
531 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
533 aros_debug_ldflags="$aros_symbols_debug"
535 #-----------------------------------------------------------------------------
536 # Checking for distcc and ccache.
538 # Always apply the transforms in this particular order. Basically you should
539 # always run 'ccache distcc compiler' in that order for the best performance.
541 AC_MSG_CHECKING([whether to enable distcc])
542 AC_ARG_ENABLE(distcc,AC_HELP_STRING([--enable-distcc],[Use distcc as a front end to the compiler (default=no).]),distcc="$enableval",distcc="no")
543 if test "$distcc" != "" -a "$distcc" != "no"; then
544 # AC_CHECK_PROG will print out the result in this case
545 AC_PATH_PROG(DISTCC,[distcc],distcc,)
550 AC_MSG_CHECKING([whether to enable ccache])
551 AC_ARG_ENABLE(ccache,AC_HELP_STRING([--enable-ccache],[Use ccache as a front end to the compiler (default=no).]),ccache="$enableval",ccache="no")
552 if test "$ccache" != "" -a "$ccache" != "no"; then
553 # AC_CHECK_PROG will print out the result in this case
554 AC_CHECK_PROG(CCACHE,[ccache],ccache,)
559 #-----------------------------------------------------------------------------
560 AC_MSG_CHECKING([what optimization flags to use])
561 AC_ARG_WITH(optimization,AC_HELP_STRING([--with-optimization=FLAGS],[Use optimization flags FLAGS (default=-O2).]),optimization="$withval",optimization="unknown")
562 if test "$optimization" = "unknown"; then
563 dnl default is -O2 for normal builds, -O0 for debug builds
564 if test "$debug" != "none"; then
570 aros_config_cflags="$aros_config_cflags $optimization"
571 AC_MSG_RESULT($optimization)
573 #-----------------------------------------------------------------------------
574 AC_MSG_CHECKING([what target variant to enable])
575 AC_ARG_ENABLE(target_variant,AC_HELP_STRING([--enable-target-variant=NAME],[Enable a specific target variant(default=none)]),target_variant=$enableval,target_variant="none")
576 if test "$target_variant" = "none"; then
577 aros_target_variant=""
578 aros_target_suffix=""
580 aros_target_variant="$target_variant"
581 aros_target_suffix="-$target_variant"
583 AC_MSG_RESULT($enableval)
585 target_bootloader="none"
587 #-----------------------------------------------------------------------------
588 # This is the target configuration switch.
591 aros_target_arch="linux"
592 case "$target_cpu" in
594 aros_target_cpu="m68k"
595 aros_object_format="m68kelf"
596 aros_flavour="emulcompat"
597 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__linux__"
598 aros_shared_ldflags="-Wl,-T,\$(TOP)/config/linux/m68k/script.so"
599 aros_kernel_ldflags="-Wl,-rpath,./lib,-T,\$(TOP)/config/linux/m68k/script.normal"
600 gcc_target_cpu="mc68000"
603 aros_target_cpu="i386"
604 aros_object_format="elf_i386"
605 aros_flavour="emulation"
606 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__linux__"
607 aros_default_wbdepth=8
608 gcc_target_cpu="i386"
611 aros_target_cpu="x86_64"
612 aros_object_format="elf_x86_64"
613 aros_flavour="emulation"
614 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__linux__"
615 aros_default_wbdepth=8
616 gcc_target_cpu="x86_64"
619 aros_target_cpu="ppc"
620 aros_object_format="elf32ppc"
621 aros_flavour="emulation"
622 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
623 aros_default_wbdepth=8
627 AC_MSG_ERROR("Unknown CPU for Linux -- $target_cpu")
633 aros_target_arch="pc"
634 aros_shared_default="no"
635 target_bootloader="grub"
636 case "$target_cpu" in
638 aros_target_cpu="i386"
640 dnl If somebody hasn't already set the target object
641 dnl format, then use this value. Mostly to support
642 dnl FreeBSD cross-compilation.
643 dnl TODO: Remove when we always use our compiler.
645 if test "$aros_object_format" = "" ; then
646 aros_object_format="elf_i386"
648 aros_flavour="standalone"
649 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
650 aros_kernel_ldflags=""
651 aros_default_wbwidth=640
652 aros_default_wbheight=480
653 gcc_target_cpu="i386"
656 aros_target_cpu="x86_64"
657 if test "$aros_object_format" = "" ; then
658 aros_object_format="elf_x86_64"
660 aros_flavour="standalone"
661 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
662 aros_config_cflags="$aros_config_cflags -fno-asynchronous-unwind-tables"
663 aros_kernel_ldflags=""
664 aros_default_wbwidth=640
665 aros_default_wbheight=480
666 gcc_target_cpu="x86_64"
669 AC_MSG_ERROR("Unknown native CPU -- $target_cpu")
675 aros_target_arch="prep"
676 aros_shared_default="no"
677 aros_target_cpu="ppc"
678 aros_object_format="elf32ppc"
679 aros_flavour="ppcnative"
680 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
681 aros_kernel_ldflags=""
682 aros_default_wbwidth=640
683 aros_default_wbheight=480
685 case "$target_cpu" in
687 aros_target_cc="ppc-linux-gcc -pipe"
688 aros_target_ld="ppc-linux-ld"
689 aros_target_as="ppc-linux-as"
690 aros_target_ar="ppc-linux-ar"
691 aros_target_ranlib="ppc-linux-ranlib"
692 aros_target_nm="ppc-linux-nm"
693 aros_target_strip="ppc-linux-strip"
694 aros_target_objcopy="ppc-linux-objcopy"
695 aros_target_objdump="ppc-linux-objdump"
696 aros_shared_ld="ppc-linux-ld"
697 aros_kernel_ld="ppc-linux-ld"
705 aros_target_arch="freebsd"
706 aros_target_cpu="i386"
707 aros_flavour="emulation"
708 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
709 gcc_target_cpu="i386"
711 aros_target_strip_flags="-x"
715 aros_target_arch="darwin"
716 aros_target_cpu="i386"
717 aros_flavour="emulation"
718 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
719 gcc_target_cpu="i386"
721 aros_target_strip_flags="-x"
725 aros_target_arch="netbsd"
726 case "$target_cpu" in
728 aros_target_cpu="m68k"
729 aros_object_format="m68kelf"
730 aros_flavour="emulcompat"
731 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
732 gcc_target_cpu="mc68000"
735 aros_target_cpu="i386"
736 aros_object_format="elf_i386"
737 aros_flavour="emulation"
738 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
739 aros_default_wbdepth=8
740 gcc_target_cpu="i386"
743 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
746 aros_target_genmap="-Wl,-M -Xlinker >"
747 aros_flavour="emulation"
748 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
752 aros_target_arch="openbsd"
753 case "$target_cpu" in
755 aros_target_cpu="i386"
756 aros_object_format="elf_i386"
757 aros_flavour="emulation"
758 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
759 gcc_target_cpu="i386"
762 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
765 aros_target_genmap="-Wl,-M -Xlinker >"
766 aros_target_nm_flags="-u"
767 aros_flavour="emulation"
771 aros_target_arch="solaris"
772 case "$target_cpu" in
774 aros_target_cpu="sparc"
775 aros_object_format="elf_sparc"
776 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
777 gcc_target_cpu="sparc"
780 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
783 aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
784 aros_flavour="emulation"
788 aros_target_arch="morphos"
789 aros_shared_default="no"
790 aros_target_cpu="ppc"
791 aros_object_format="elf_ppc"
792 aros_flavour="nativecompat"
793 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
798 aros_target_arch="sam440"
799 aros_shared_default="no"
800 aros_target_cpu="ppc"
801 aros_object_format="elf32ppc"
802 aros_flavour="ppcnative"
803 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
804 aros_kernel_ldflags=""
805 aros_default_wbwidth=640
806 aros_default_wbheight=480
807 aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
808 gcc_target_cpu="powerpc"
809 case "$target_cpu" in
811 aros_target_cc="powerpc-linux-gcc -pipe"
812 aros_target_ld="powerpc-linux-ld"
813 aros_target_as="powerpc-linux-as"
814 aros_target_ar="powerpc-linux-ar"
815 aros_target_ranlib="powerpc-linux-ranlib"
816 aros_target_nm="powerpc-linux-nm"
817 aros_target_strip="powerpc-linux-strip"
818 aros_target_objcopy="powerpc-linux-objcopy"
819 aros_target_objdump="powerpc-linux-objdump"
820 aros_shared_ld="powerpc-linux-ld"
821 aros_kernel_ld="powerpc-linux-ld"
829 aros_target_arch="amiga"
830 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
831 aros_shared_default="no"
833 aros_config_cflags="$aros_config_cflags -fomit-frame-pointer -fbuiltin -ffreestanding"
835 case "$target_cpu" in
837 aros_target_cpu="m68k"
838 aros_object_format="m68kelf"
839 aros_flavour="nativecompat"
840 gcc_target_cpu="mc68000"
844 aros_flavour="native"
848 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
854 aros_target_arch="cygwin"
855 aros_shared_default="no"
856 case "$target_cpu" in
858 aros_target_cpu="i386"
859 aros_object_format="elf_i386"
860 aros_flavour="emulation"
861 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__CYGWIN32__"
862 aros_shared_cflags=""
863 aros_default_wbdepth=8
864 gcc_target_cpu="i386"
867 AC_MSG_ERROR("Unknown CPU for CygWin -- $target_cpu")
873 aros_target_arch="mingw32"
874 aros_shared_default="no"
875 case "$target_cpu" in
877 aros_target_cpu="i386"
878 aros_object_format="elf_i386"
879 aros_flavour="emulation"
880 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
881 aros_shared_cflags=""
882 aros_default_wbdepth=8
883 gcc_target_cpu="i386"
886 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
891 aros_target_arch="pp"
892 aros_shared_default="no"
893 case "$target_cpu" in
895 aros_target_cpu="m68k"
896 aros_object_format="m68kelf"
897 aros_flavour="palmnative"
898 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
899 aros_kernel_ldflags=""
900 aros_default_wbwidth=160
901 aros_default_wbheight=160
902 aros_default_wbdepth=1
903 aros_target_cc="m68k-elf-gcc -pipe"
904 aros_target_ld="$(which m68k-elf-ld)"
905 aros_target_as="m68k-elf-gcc -pipe"
906 aros_shared_ld="m68k-elf-gcc"
907 aros_kernel_ld="m68k-elf-gcc"
908 aros_target_ar="m68k-elf-ar"
909 aros_target_ar_flags="cru"
910 aros_target_ranlib="m68k-elf-ranlib"
911 aros_target_nm="m68k-elf-nm"
912 aros_target_objcopy="m68k-elf-objcopy"
913 aros_target_objdump="m68k-elf-objdump"
914 aros_compiler_libs="-lgcc1"
915 aros_shared_default=no
916 aros_shared_cflags="-fpic"
917 aros_shared_aflags=""
918 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
919 aros_kernel_ldflags="-Wl,-rpath,./lib"
920 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug $aros_messages_debug -mc68000 -Wa,-mc68000"
922 aros_debug_ldflags="$aros_symbols_debug"
923 aros_mungwall_debug="0"
924 aros_modules_debug="0"
925 gcc_target_cpu="mc68000"
926 ignore_undefined_symbols="-ius"
929 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
935 aros_target_arch="mac"
936 aros_shared_default="no"
937 case "$target_cpu" in
939 aros_target_cpu="m68k"
940 aros_object_format="m68kelf"
941 aros_flavour="mac68knative"
942 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
943 aros_default_wbwidth=512
944 aros_default_wbheight=384
945 aros_default_wbdepth=8
946 aros_target_cc="m68k-elf-gcc -pipe"
947 aros_target_ld="$(which m68k-elf-ld)"
948 aros_target_as="m68k-elf-gcc -pipe"
949 aros_shared_ld="m68k-elf-gcc"
950 aros_kernel_ld="m68k-elf-gcc"
951 aros_target_ar="m68k-elf-ar"
952 aros_target_ar_flags="cru"
953 aros_target_ranlib="m68k-elf-ranlib"
954 aros_target_nm="m68k-elf-nm"
955 aros_target_objcopy="m68k-elf-objcopy"
956 aros_target_objdump="m68k-elf-objdump"
957 aros_compiler_libs="-lgcc1"
958 aros_shared_default=no
959 aros_shared_cflags="-fpic"
960 aros_shared_aflags=""
961 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
962 aros_kernel_ldflags="-Wl,-rpath,./lib"
963 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug $aros_messages_debug -mc68000"
965 aros_debug_ldflags="$aros_symbols_debug"
966 aros_mungwall_debug="0"
967 aros_modules_debug="0"
968 gcc_target_cpu="mc68000"
969 ignore_undefined_symbols="-ius"
972 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
978 AC_MSG_ERROR([Unsupported target architecture $target])
982 AC_MSG_CHECKING([which bootloader to use])
983 AC_ARG_ENABLE(bootloader,AC_HELP_STRING([--enable-bootloader=NAME],[Enable a specific bootloader]),target_bootloader=$enableval,target_bootloader=$target_bootloader)
984 if test "$target_bootloader" = "none"; then
985 aros_target_bootloader=""
987 aros_target_bootloader="$target_bootloader"
989 AC_MSG_RESULT($target_bootloader)
991 # Find out if we are cross-compiling (ie. if we can't use the host compiler
994 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
997 if test "$aros_host_arch" == "darwin" ; then
1001 # Set prefix for target compiler etc. if we're cross-compiling
1002 # (should possibly be earlier but needs to be after AC_PROG_CC)
1003 if test "$cross_compiling" = "yes" ; then
1004 target_tool_prefix=${target_cpu}-elf-
1005 CC=${target_tool_prefix}gcc
1008 # Find all the tools we need to compile. This could be cross-compiling
1009 # though! If that is the case we use the GNU form of the target and
1010 # simply add this to the front of the binary name. This is rather simple,
1011 # but it should work under most circumstances.
1013 # The default tools are to use the same as the host, but only if the
1014 # host and target CPU are the same. With GCC this is normally enough.
1018 aros_shared_ld="$aros_host_ld"
1020 aros_target_mkdep="$aros_host_mkdep"
1021 aros_target_incl_def="$aros_host_incl"
1023 AC_PATH_PROG(aros_kernel_cc,$CC)
1025 # The default tools executables to be linked to.
1026 AROS_TOOL_TARGET(aros_target_as_ln,as)
1027 AROS_REQUIRED(as,$aros_target_as_ln)
1028 AROS_TOOL_TARGET(aros_kernel_ld,ld)
1029 AROS_REQUIRED(ld,$aros_kernel_ld)
1030 AROS_TOOL_TARGET(aros_target_ar_ln,ar)
1031 AROS_REQUIRED(ar,$aros_target_ar_ln)
1032 AROS_TOOL_TARGET(aros_target_nm_ln,nm)
1033 AROS_REQUIRED(nm,$aros_target_nm_ln)
1034 AROS_TOOL_TARGET(aros_target_objcopy_ln,objcopy)
1035 AROS_REQUIRED(objcopy,$aros_target_objcopy_ln)
1036 AROS_TOOL_TARGET(aros_target_objdump_ln,objdump)
1037 AROS_REQUIRED(objdump,$aros_target_objdump_ln)
1038 AROS_TOOL_TARGET(aros_target_ranlib_ln,ranlib)
1039 AROS_REQUIRED(ranlib,$aros_target_ranlib_ln)
1040 AROS_TOOL_TARGET(aros_target_strip_ln,strip)
1041 AROS_REQUIRED(strip,$aros_target_strip_ln)
1043 if test "$GCC" = "yes"; then
1044 aros_target_cc_path=`$aros_kernel_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
1047 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/config"
1048 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
1049 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
1050 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
1051 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
1052 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
1053 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
1055 # aros_cc_pre is a variable that is added to the front of the compiler name
1056 # in the generated aros-gcc shell script. We need this to enable the cache
1057 # to work across cleaned builds. Also, support DISTCC using the correct
1058 # environment variable.
1061 if test "x${DISTCC}" != "x" ; then
1062 if test "x${CCACHE}" != "x" ; then
1063 aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
1065 aros_cc_pre="${DISTCC} "
1068 if test "x${CCACHE}" != "x" ; then
1069 aros_cc_pre="${CCACHE} "
1073 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros"
1075 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
1076 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
1077 AC_SUBST(aros_target_nix_ldflags,-nix)
1078 AC_SUBST(aros_target_detach_ldflags,-detach)
1079 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
1082 aros_target_cc="${prefix}-gcc"
1083 aros_target_as="${prefix}-as"
1084 aros_target_ld="${prefix}-ld"
1085 aros_target_ar="${prefix}-ar $aros_target_ar_flags"
1086 aros_target_objcopy=${prefix}-objcopy
1087 aros_target_objdump=${prefix}-objdump
1088 aros_target_ranlib="${prefix}-ranlib $aros_target_ranlib_flags"
1089 aros_target_nm="${prefix}-nm $aros_target_nm_flags"
1090 aros_kernel_nm="${prefix}-nm"
1091 aros_target_strip=${prefix}-strip
1094 # Find the system include path. We can suggest that an alternative is
1095 # used if we don't get it correct. The default is to use /usr/include.
1096 # Which is set in the aros_target_incl_def variable.
1098 AC_ARG_ENABLE(includes,
1099 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
1100 [aros_target_incl=$enable_includes], [aros_target_incl=$aros_target_incl_def])
1102 dnl find out about the target cc's include path
1103 AC_MSG_CHECKING([for the target compiler's include path])
1104 if test "$aros_target_cc_includes" = "" ; then
1105 #try to guess where the directory is
1106 aros_target_cc_includes=`dirname \`${aros_kernel_cc} -print-libgcc-file-name\``/include
1107 if ! test -d $aros_target_cc_includes; then
1108 #the directory doesn't exist, we need to do some more work
1109 aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
1111 #these are the headers we're looling for
1112 headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
1113 stddef.h xmmintrin.h iso646.h stdarg.h unwind.h \
1117 for h in $headers; do
1118 #which other headers each of the above headers needs?
1119 deps=$(echo "#include <$h>" | \
1120 $aros_host_cc -E -M - 2>/dev/null | \
1121 sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
1123 #copy all the needed headers to a directory beneath gendir
1126 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
1127 sed -n "s,^.*/include\(/.*\),\1,p")
1128 ! test -d $dir && mkdir -p $dir
1129 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
1134 AC_MSG_RESULT($aros_target_cc_includes)
1136 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
1137 AC_MSG_CHECKING([for default resolution of WBScreen])
1138 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
1139 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
1140 if test "$resolution" = "yes" ; then
1143 if test "$resolution" = "no" ; then
1146 if test "$resolution" != "none" ; then
1147 aros_default_wbwidth=`echo $resolution | cut -d'x' -f1`
1148 aros_default_wbheight=`echo $resolution | cut -d'x' -f2`
1149 aros_default_wbdepth=`echo $resolution | cut -d'x' -f3`
1151 AC_MSG_RESULT($aros_default_wbwidth x $aros_default_wbheight x $aros_default_wbdepth)
1152 aros_cv_default_wbwidth=$aros_default_wbwidth
1153 aros_cv_default_wbheight=$aros_default_wbheight
1154 aros_cv_default_wbdepth=$aros_default_wbdepth
1156 dnl See if the user wants the BOCHS hack for native flavour
1157 AC_MSG_CHECKING([if bochs hack is enabled])
1158 AC_ARG_ENABLE(bochs_hack,AC_HELP_STRING([--enable-bochs-hack],[Enable hacks to make BOCHS (partly) work (default=no)]),bochs_hack="yes",bochs_hack="no")
1159 if test "$bochs_hack" = "yes" ; then
1162 AC_MSG_RESULT($bochs_hack)
1164 dnl See if the user wants the serial debug output for native flavour
1165 AC_MSG_CHECKING([if serial debug is enabled])
1166 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)
1167 if test "$serial_debug" = "yes" ; then
1170 if test "$serial_debug" = "no" ; then
1173 if test "$serial_debug" != "none" ; then
1174 aros_serial_debug=$serial_debug
1175 AC_MSG_RESULT(on port $serial_debug)
1180 dnl See if the user wants the palm debug output hack for palm native flavour
1181 AC_MSG_CHECKING([if palm debug hack is enabled])
1182 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")
1183 if test "$palm_debug_hack" = "yes" ; then
1184 aros_palm_debug_hack="1"
1186 AC_MSG_RESULT($palm_debug_hack)
1189 dnl See if the user wants nesting supervisor activated for unix flavour
1190 AC_MSG_CHECKING([if nesting supervisor support is enabled])
1191 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")
1192 if test "$nesting_supervisor" = "yes" ; then
1193 aros_nesting_supervisor="1"
1195 AC_MSG_RESULT($nesting_supervisor)
1198 dnl things specifically required for hosted flavours
1199 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1201 dnl some kind of dynamic library access system is required for hostlib.resource
1202 AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
1203 if test "x-$have_dl" = "x-no" ; then
1204 AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
1205 aros_host_ldflags="$aros_host_ldflags -ldl"],
1208 if test "x-$have_dl" = "x-no" ; then
1209 AC_MSG_ERROR([dlopen() dynamic linker functions not available])
1214 AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
1215 [build X11 hidd for hosted (default=auto)]),
1216 x11_hidd="$enableval",
1218 case "x-$x11_hidd" in
1219 x-yes|x-no|x-auto) ;;
1220 *) x11_hidd="auto" ;;
1224 if test "x-$x11_hidd" != "x-no" ; then
1230 for path in $x_libraries
1232 x_cflags="$x_cflags -L$path"
1235 for path in $x_includes
1237 x_cflags="$x_cflags -I$path"
1240 if test "x-$no_x" = "x-yes" ; then
1243 if test "x-$x11_hidd" != "x-auto" ; then
1244 dnl and they explicitly asked for it, bail out
1245 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
1249 dnl found it, setup the metatarget
1250 x11_hidd_target=kernel-x11gfx
1253 dnl setup shared memory extensions
1254 AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
1255 [use X11 shared memory (default=auto)]),
1256 x11_hidd_shm="$enableval",
1257 x11_hidd_shm="auto")
1258 case "x-$x11_hidd_shm" in
1259 x-yes|x-no|x-auto) ;;
1260 *) x11_hidd_shm="auto" ;;
1266 if test "x-$x11_hidd_shm" != "x-no" ; then
1268 dnl system shm headers
1269 AC_CHECK_HEADERS(sys/ipc.h)
1270 AC_CHECK_HEADERS(sys/shm.h)
1273 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
1275 dnl make sure X libs have shm functions
1276 save_cflags="$CFLAGS"
1277 CFLAGS="$CFLAGS $x_cflags"
1278 AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
1279 CFLAGS="$save_cflags"
1283 dnl detection done, prepare output
1284 if test "x-$have_xshm" = "x-yes" ; then
1287 elif test "x-$x11_hidd_shm" = "x-yes" ; then
1288 dnl they explicitly asked for it, but we can't do it
1289 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
1291 dnl otherwise just disable it
1296 dnl setup vidmode (fullscreen) extensions
1297 AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
1298 [use X11 vidmode extension (default=auto)]),
1299 x11_hidd_vidmode="$enableval",
1300 x11_hidd_vidmode="auto")
1301 case "x-$x11_hidd_vidmode" in
1302 x-yes|x-no|x-auto) ;;
1303 *) x11_hidd_vidmode="auto" ;;
1309 if test "x-$x11_hidd_vidmode" != "x-no" ; then
1311 dnl make sure X libs have vidmode functions
1312 save_cflags="$CFLAGS"
1313 CFLAGS="$CFLAGS $x_cflags"
1314 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
1315 CFLAGS="$save_cflags"
1318 dnl detection done, prepare output
1319 if test "x-$have_vidmode" = "x-yes" ; then
1320 dnl we can do vidmode
1321 DO_VIDMODE_SUPPORT="1"
1322 elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
1323 dnl they explicitly asked for it, but we can't do it
1324 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
1326 dnl otherwise just disable it
1327 DO_VIDMODE_SUPPORT="0"
1331 aros_host_x11_includes=$x_includes
1332 aros_host_x11_libdirs=$x_libraries
1337 AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
1338 [build SDL hidd for hosted (default=auto)]),
1339 sdl_hidd="$enableval",
1341 case "x-$sdl_hidd" in
1342 x-yes|x-no|x-auto) ;;
1343 *) sdl_hidd="auto" ;;
1347 if test "x-$sdl_hidd" != "x-no" ; then
1350 AM_PATH_SDL([1.2.10], have_sdl="yes", have_sdl="no")
1352 if test "x-$have_sdl" != "x-yes" ; then
1355 if test "x-$sdl_hidd" != "x-auto" ; then
1356 dnl and they explicitly asked for it, bail out
1357 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
1361 dnl found it, setup the metatarget
1362 sdl_hidd_target=kernel-hidd-sdl
1363 aros_host_sdl_cflags=SDL_CFLAGS
1364 aros_host_sdl_libs=SDL_LIBS
1371 dnl See if the user wants dbus.library
1372 AC_MSG_CHECKING([if building of dbus.library is enabled])
1373 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
1374 if test "$dbus" = "yes" ; then
1376 DBUS_CFLAGS=`pkg-config --cflags dbus-1`
1377 DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
1378 KERNEL_DBUS_KOBJ=kernel-dbus-kobj
1379 KERNEL_DBUS_INCLUDES=kernel-dbus-includes
1383 AC_MSG_RESULT($dbus)
1386 dnl --------------------------------------------------------------------
1387 dnl Configuration Output Section
1388 dnl --------------------------------------------------------------------
1393 AC_SUBST(aros_flavour)
1394 AC_SUBST(aros_flavour_uc)
1398 AC_SUBST(aros_cc_pre)
1399 AC_SUBST(aros_host_strip)
1400 AC_SUBST(aros_host_arch)
1401 AC_SUBST(aros_host_cpu)
1402 AC_SUBST(aros_host_cc)
1403 AC_SUBST(aros_host_ar)
1404 AC_SUBST(aros_host_ranlib)
1405 AC_SUBST(aros_host_ld)
1406 AC_SUBST(aros_host_make)
1407 AC_SUBST(aros_host_cflags)
1408 AC_SUBST(aros_host_ldflags)
1409 AC_SUBST(aros_host_debug)
1410 AC_SUBST(aros_host_mkdep)
1411 AC_SUBST(aros_host_mkargs)
1412 AC_SUBST(aros_host_exe_suffix)
1413 AC_SUBST(aros_host_lib_suffix)
1414 AC_SUBST(aros_tools_dir)
1415 AC_SUBST(aros_host_aclocal)
1416 AC_SUBST(aros_host_autoconf)
1417 AC_SUBST(aros_host_autoheader)
1418 AC_SUBST(aros_host_automake)
1421 AC_SUBST(aros_target_bootloader)
1422 AC_SUBST(aros_target_arch)
1423 AC_SUBST(aros_target_cpu)
1424 AC_SUBST(aros_target_variant)
1425 AC_SUBST(aros_target_suffix)
1426 AC_SUBST(aros_target_incl)
1427 AC_SUBST(aros_target_ar)
1428 AC_SUBST(aros_target_ranlib)
1429 AC_SUBST(aros_kernel_nm)
1430 AC_SUBST(aros_target_cc)
1431 AC_SUBST(aros_kernel_cc)
1432 AC_SUBST(aros_target_as)
1433 AC_SUBST(aros_target_ld)
1434 AC_SUBST(aros_kernel_ld)
1435 AC_SUBST(aros_target_cc_includes)
1436 AC_SUBST(aros_target_cc_path)
1437 AC_SUBST(aros_target_objdump)
1438 AC_SUBST(aros_target_objcopy)
1439 AC_SUBST(aros_target_strip)
1440 AC_SUBST(aros_target_nm)
1441 AC_SUBST(aros_shared_default)
1442 AC_SUBST(aros_shared_ld)
1443 AC_SUBST(aros_object_format)
1444 AC_SUBST(aros_compiler_libs)
1446 AC_SUBST(aros_config_cflags)
1447 AC_SUBST(aros_config_aflags)
1448 AC_SUBST(aros_config_ldflags)
1450 AC_SUBST(aros_shared_cflags)
1451 AC_SUBST(aros_shared_aflags)
1452 AC_SUBST(aros_shared_ldflags)
1453 AC_SUBST(aros_kernel_ldflags)
1454 AC_SUBST(aros_debug_cflags)
1455 AC_SUBST(aros_debug_aflags)
1456 AC_SUBST(aros_debug_ldflags)
1457 AC_SUBST(aros_target_genmap)
1458 AC_SUBST(aros_target_strip_flags)
1461 AC_SUBST(x11_hidd_target)
1462 AC_SUBST(sdl_hidd_target)
1464 AC_SUBST(aros_default_wbwidth)
1465 AC_SUBST(aros_default_wbheight)
1466 AC_SUBST(aros_default_wbdepth)
1467 AC_SUBST(DO_XSHM_SUPPORT)
1468 AC_SUBST(DO_VIDMODE_SUPPORT)
1470 AC_SUBST(aros_host_x11_includes)
1471 AC_SUBST(aros_host_x11_libdirs)
1472 AC_SUBST(aros_host_sdl_cflags)
1473 AC_SUBST(aros_host_sdl_libs)
1475 # Native version related
1476 AC_SUBST(aros_bochs_hack)
1477 AC_SUBST(aros_serial_debug)
1479 # Palm native version related
1480 AC_SUBST(aros_palm_debug_hack)
1482 # Unix/Hosted version related
1483 AC_SUBST(aros_nesting_supervisor)
1486 AC_SUBST(ENABLE_DBUS)
1487 AC_SUBST(DBUS_CFLAGS)
1488 AC_SUBST(DBUS_LIBFLAGS)
1489 AC_SUBST(KERNEL_DBUS_KOBJ)
1490 AC_SUBST(KERNEL_DBUS_INCLUDES)
1493 AC_SUBST(aros_debug)
1494 AC_SUBST(aros_mungwall_debug)
1495 AC_SUBST(aros_stack_debug)
1496 AC_SUBST(aros_modules_debug)
1498 # Collect-aros stuff: "-ius" to ignore undefined symbols
1499 AC_SUBST(ignore_undefined_symbols)
1501 # C compiler related
1502 AC_SUBST(gcc_target_cpu)
1504 dnl Prepare for output, make up all the generated patches
1505 case "$aros_flavour" in
1506 emulation) aros_flavour_uc="AROS_FLAVOUR_EMULATION"
1507 aros_flavour="emulation" ;;
1508 emulcompat) aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
1509 aros_flavour="emulation" ;;
1510 standalone) aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
1511 aros_flavour="standalone";;
1512 native) aros_flavour_uc="AROS_FLAVOUR_NATIVE"
1513 aros_flavour="native" ;;
1514 nativecompat) aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
1515 aros_flavour="native" ;;
1516 linklib) aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
1517 aros_flavour="linklib" ;;
1518 palmnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1519 aros_flavour="palmnative" ;;
1520 mac68knative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1521 aros_flavour="mac68knative" ;;
1522 ppcnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
1523 aros_flavour="ppcnative" ;;
1526 if test ! -d ${aros_inc_dir} ; then
1527 ${MKDIR} ${aros_inc_dir}
1529 if test ! -d ${aros_geninc_dir} ; then
1530 ${MKDIR} ${aros_geninc_dir}
1532 if test ! -d ${aros_hostcfg_dir} ; then
1533 ${MKDIR} ${aros_hostcfg_dir}
1535 if test ! -d ${aros_targetcfg_dir} ; then
1536 ${MKDIR} ${aros_targetcfg_dir}
1538 if test ! -d ${aros_tools_dir} ; then
1539 ${MKDIR} ${aros_tools_dir}
1541 if test ! -d ${aros_scripts_dir} ; then
1542 ${MKDIR} ${aros_scripts_dir}
1545 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
1547 AC_CONFIG_COMMANDS([compiler_executable],
1549 prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
1551 prefix="${prefix}/${aros_target_cpu}-aros"
1552 prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
1556 chmod a+x ${prefix2}-gcc ${prefix2}-ld
1558 ln -sf ${prefix2}-gcc ${prefix}-gcc
1559 ln -sf ${prefix2}-ld ${prefix}-ld
1561 ln -sf $aros_target_as_ln ${prefix}-as
1562 ln -sf $aros_target_nm_ln ${prefix}-nm
1563 ln -sf $aros_target_ar_ln ${prefix}-ar
1564 ln -sf $aros_target_ranlib_ln ${prefix}-ranlib
1565 ln -sf $aros_target_objcopy_ln ${prefix}-objcopy
1566 ln -sf $aros_target_objdump_ln ${prefix}-objdump
1567 ln -sf $aros_target_strip_ln ${prefix}-strip
1569 ln -sf $aros_target_as_ln ${prefix2}-as
1570 ln -sf $aros_target_nm_ln ${prefix2}-nm
1571 ln -sf $aros_target_ar_ln ${prefix2}-ar
1572 ln -sf $aros_target_ranlib_ln ${prefix2}-ranlib
1573 ln -sf $aros_target_objcopy_ln ${prefix2}-objcopy
1574 ln -sf $aros_target_objdump_ln ${prefix2}-objdump
1575 ln -sf $aros_target_strip_ln ${prefix2}-strip
1578 aros_tools_dir=${aros_tools_dir}
1579 aros_target_cpu=${aros_target_cpu}
1580 aros_target_arch=${aros_target_arch}
1581 aros_target_suffix=${aros_target_suffix}
1582 aros_target_nm_ln=${aros_target_nm_ln}
1583 aros_target_as_ln=${aros_target_as_ln}
1584 aros_target_ar_ln=${aros_target_ar_ln}
1585 aros_target_ranlib_ln=${aros_target_ranlib_ln}
1586 aros_target_objdump_ln=${aros_target_objdump_ln}
1587 aros_target_objcopy_ln=${aros_target_objcopy_ln}
1588 aros_target_strip_ln=${aros_target_strip_ln}
1591 AC_CONFIG_COMMANDS([genshared_executable],
1592 [chmod a+x ${aros_scripts_dir}/genshared],
1593 [aros_scripts_dir=${aros_scripts_dir}]
1595 AC_CONFIG_COMMANDS([genmf_executable],
1596 [chmod a+x ${aros_tools_dir}/genmf.py],
1597 [aros_tools_dir=${aros_tools_dir}]
1599 AC_CONFIG_COMMANDS([adflib_myaros.conf_executable],
1600 [chmod a+x tools/adflib/myconf.aros]
1606 ${aros_inc_dir}/config.h:config/config.h.in
1607 ${aros_geninc_dir}/config.h:config/config.h.in
1608 ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
1609 ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
1611 ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
1612 ${aros_targetcfg_dir}/specs:config/specs.in
1613 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-gcc:scripts/aros-gcc.in
1614 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
1615 ${aros_scripts_dir}/genshared:compiler/c_lib/source/lib_source/genshared.in
1616 ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
1617 tools/adflib/myconf.aros
1618 tools/collect-aros/env.h
1623 dnl This is in order to not define SHARED_CFLAGS sometimes
1624 dnl We don't always do aros_shared_ar, aros_shared_cflags
1626 #XXX compatability...
1627 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
1629 if test -n "$aros_shared_cflags" ; then
1630 echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
1631 echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg