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...
47 AC_MSG_CHECKING([Building AROS in .. ])
49 AC_MSG_RESULT($AROS_BUILDDIR)
51 AC_MSG_CHECKING([AROS Source in .. ])
52 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
54 AC_MSG_RESULT($AROS_SRCDIR)
56 # Parse the target field into something useful.
58 target_os=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\1/'`
59 target_cpu=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\2/'`
62 dnl --------------------------------------------------------------------
63 dnl Set the default Workbench resolution
64 dnl --------------------------------------------------------------------
65 aros_default_wbwidth=800
66 aros_default_wbheight=600
67 aros_default_wbdepth=4
69 dnl --------------------------------------------------------------------
70 dnl Host Configuration Section
71 dnl --------------------------------------------------------------------
73 dnl The idea here is to find out all the information we need about the
74 dnl host. This means things like tools for building directory structures,
75 dnl copying files around and the like.
77 # The first step is to find the host binaries.
78 # Check for a compiler.
83 # Check for a compatible awk
84 AC_CHECK_PROGS(AWK,[gawk nawk])
85 AROS_REQUIRED(gawk,$AWK)
86 AROS_PROG(MMAKE,mmake)
88 # Perform some default variable assignments. Note all of these will be
89 # Regenerated from the script, so there is no need to cache them.
92 AROS_TOOL_CCPATH(aros_host_ld,ld)
93 AROS_REQUIRED(ld,$aros_host_ld)
95 aros_host_cflags=$CFLAGS
96 aros_host_ldflags=$LDFLAGS
97 aros_host_debug="-g -O0"
98 aros_host_mkdep="\$(TOP)/scripts/mkdep"
99 aros_host_mkargs="--no-print-directory"
100 aros_host_incl="/usr/include"
101 aros_host_exe_suffix="$EXEEXT"
102 aros_host_lib_suffix=""
104 AC_CHECK_PROGS(aros_host_aclocal,[aclocal aclocal19])
105 AC_CHECK_PROGS(aros_host_autoconf,[autoconf autoconf259 autoconf253])
106 AC_CHECK_PROGS(aros_host_autoheader,[autoheader autoheader259 autoheader253])
107 AC_CHECK_PROGS(aros_host_automake,[automake automake19])
109 case "$aros_host_cc" in
111 aros_host_cc_pipe="-pipe"
121 dnl Despite the name, this is really a host configuration variable.
122 aros_target_cc_includes=""
124 # This is the main host configuration section. It is where the host
125 # can change the values of any variables it needs to change. We do
126 # not look at anything that compiles to the target yet, we'll get
131 aros_host_arch="linux"
132 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
138 aros_host_cpu="x86_64"
147 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
148 aros_host_cpu="$host_cpu"
154 aros_host_cc="$aros_host_cc $aros_host_cc_pipe -I/usr/local/include"
155 aros_host_make="gmake"
156 aros_host_arch="freebsd"
159 aros_host_ldflags="$aros_host_ldflags -L/usr/local/lib -liconv"
161 dnl Need to override this here, it's just too hard later.
162 dnl This shouldn't be here at all...
163 dnl aros_target_cc_includes="/usr/include"
165 dnl FreeBSD 5.x (and later) has changed the default object format.
166 dnl The double [[]] is necessary to get around m4's quoting rules.
169 aros_object_format="elf_i386"
173 aros_object_format="elf_i386_fbsd"
180 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
181 aros_host_arch="darwin"
190 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
191 aros_host_cpu="$host_cpu"
195 aros_host_ldflags="$aros_host_ldflags -liconv"
200 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
201 aros_host_make="gmake"
202 aros_host_arch="netbsd"
211 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
212 aros_host_cpu="$host_cpu"
215 aros_host_lib_suffix=".0.0"
219 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
220 aros_host_make="gmake"
221 aros_host_arch="openbsd"
227 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
228 aros_host_cpu="$host_cpu"
234 aros_host_arch="solaris"
235 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
238 aros_host_cpu="sparc"
241 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
242 aros_host_cpu="$host_cpu"
248 aros_host_arch="morphos"
253 aros_host_arch="amiga"
258 TOUCH="/gg/bin/touch"
267 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
268 aros_host_cpu="$host_cpu"
274 aros_host_arch="cygwin"
275 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
281 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
282 aros_host_cpu="$host_cpu"
288 aros_host_arch="mingw32"
289 aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
295 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
296 aros_host_cpu="$host_cpu"
301 AC_MSG_ERROR([Unsupported host architecture $host])
305 AROS_PROG(aros_host_ar,[ar],[cr])
306 AROS_REQUIRED(ar,$aros_host_ar)
307 AROS_PROG(aros_host_ranlib,ranlib)
308 AROS_REQUIRED(ranlib,$aros_host_ranlib)
309 AROS_PROG(aros_host_strip,strip)
310 AROS_REQUIRED(strip,$aros_host_strip)
312 AROS_PROG(RM,[rm],[-rf])
313 AROS_REQUIRED(rm,$RM)
315 AROS_REQUIRED(cp,$CP)
317 AROS_REQUIRED(mv,$MV)
318 AROS_PROG(ECHO,[echo])
319 AROS_REQUIRED(echo,$ECHO)
320 AROS_PROG(MKDIR,[mkdir],[-p])
321 AROS_REQUIRED(mkdir,$MKDIR)
322 AROS_PROG(TOUCH,[touch])
323 AROS_REQUIRED(touch,$TOUCH)
324 AROS_PROG(SORT,[sort])
325 AROS_REQUIRED(sort,$SORT)
326 AROS_PROG(UNIQ,[uniq])
327 AROS_REQUIRED(uniq,$UNIQ)
328 AROS_PROG(NOP,[true])
329 AROS_REQUIRED(true,$NOP)
331 AROS_REQUIRED(cat,$CAT)
332 AROS_PROG(BISON,[bison])
333 AROS_REQUIRED(bison,$BISON)
334 AROS_PROG(FLEX,[flex])
335 AROS_REQUIRED(flex,$FLEX)
336 AROS_PROG(PNGTOPNM,[pngtopnm])
337 AROS_REQUIRED(pngtopnm,$PNGTOPNM)
338 AROS_PROG(PPMTOILBM,[ppmtoilbm])
339 AROS_REQUIRED(ppmtoilbm,$PPMTOILBM)
341 AROS_REQUIRED(sed,$SED)
342 AROS_PROG(CHMOD,[chmod])
343 AROS_REQUIRED(chmod,$CHMOD)
345 AM_PATH_PYTHON(2.2.1)
352 dnl ---------------------------------------------------------------------------
353 dnl Look for things about the host system, good for hosted targets.
354 dnl ---------------------------------------------------------------------------
356 # Check for some includes for the X11 HIDD and the kernel
357 AC_CHECK_HEADERS([sys/ipc.h sys/shm.h \
358 sys/mmap.h sys/mman.h sysexits.h \
359 sys/statfs.h sys/statvfs.h sys/vfs.h sys/param.h \
362 AC_CHECK_HEADERS([sys/mount.h],,,[#include <sys/param.h>])
379 AC_CHECK_MEMBERS(struct tm.tm_gmtoff)
381 # Look for some functions
382 AC_CHECK_FUNCS([getpagesize kqueue statfs statvfs \
383 clone kse_create rfork_thread thr_create sa_register \
384 getcontext makecontext setcontext sigaltstack swapcontext])
389 dnl --------------------------------------------------------------------
390 dnl Target Configuration Section
391 dnl --------------------------------------------------------------------
393 dnl The target configuration section is responsible for setting up all
394 dnl the paths for includes, and tools required to build AROS to some
395 dnl particular target.
397 aros_config_cflags="-Wall -Werror-implicit-function-declaration"
398 aros_config_aflags="-Wall -x assembler-with-cpp -c"
399 aros_config_ldflags=""
401 aros_shared_default=yes
403 aros_shared_cflags="-fPIC"
404 aros_shared_aflags=""
405 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
406 aros_kernel_ldflags="-Wl,-rpath,./lib"
408 aros_target_ar_flags="cr"
409 aros_target_nm_flags="-C -ul"
410 aros_target_strip_flags="--strip-unneeded -R.comment"
414 aros_target_genmap="-Wl,-Map -Xlinker"
416 # Native flavour stuff
418 aros_serial_debug="0"
420 # Palm native flavour stuff
421 aros_palm_debug_hack="0"
424 aros_nesting_supervisor="0"
426 # Collect-aros stuff: "-ius" to ignore undefined symbols
427 ignore_undefined_symbols=""
429 #-----------------------------------------------------------------------------
432 # GCC 4.1+ has a stack protection feature that requires OS support. Ubuntu has
433 # it switched on by default, and we use the host compiler, so it compiles AROS
434 # code with this enabled resulting in link failures as we don't have support
437 # We use two methods to disable it. For the host compiler (used to compile
438 # some hosted modules), we test to see if the compiler supports stack
439 # protection, and if it does we disable it in AROS_CONFIG_CFLAGS. This should
440 # work on all platforms.
442 # For the "cross" compiler we clear the "ssp_default" spec in config/specs.in
443 # (this is done unconditionally, as it should have no effect on compilers
444 # without the stack protection feature). This may be specific to the way that
445 # Ubuntu enables the feature, so may not work everywhere. My specs-fu isn't
446 # strong enough to disable it in a generic way though, so we'll live with it
447 # until another vendor ships GCC with it enabled in a different way, and deal
451 AC_MSG_CHECKING([whether ${CC} accepts -fno-stack-protector])
452 save_cflags="$CFLAGS"
453 CFLAGS="$CFLAGS -fno-stack-protector"
454 AC_TRY_COMPILE(,, use_no_stack_protector="yes", use_no_stack_protector="no")
455 AC_MSG_RESULT($use_no_stack_protector)
456 if test "x-$use_no_stack_protector" = "x-yes" ; then
457 aros_host_cflags="$aros_host_cflags -fno-stack-protector"
459 CFLAGS="$save_cflags"
461 #-----------------------------------------------------------------------------
463 # Disable pointer-signedness warnings if the compiler recognises the option
464 # (this only works for the host compiler at the moment)
466 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
467 save_cflags="$CFLAGS"
468 CFLAGS="$CFLAGS -Wno-pointer-sign"
469 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
470 AC_MSG_RESULT($use_no_sign_warning)
471 if test "x-$use_no_sign_warning" = "x-yesnnn" ; then
472 aros_host_cflags="$aros_host_cflags -Wno-pointer-sign"
474 CFLAGS="$save_cflags"
476 #-----------------------------------------------------------------------------
478 AC_MSG_CHECKING([for type of build])
479 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")
481 if test "$build_type" = "nightly"; then
482 build_type_string="NIGHTLY"
483 elif test "$build_type" = "snapshot"; then
484 build_type_string="SNAPSHOT"
485 elif test "$build_type" = "milestone"; then
486 build_type_string="MILESTONE"
487 elif test "$build_type" = "release"; then
488 build_type_string="RELEASE"
490 build_type_string="PERSONAL"
491 build_type="personal"
494 aros_config_cflags="$aros_config_cflags -DAROS_BUILD_TYPE=AROS_BUILD_TYPE_$build_type_string"
496 AC_MSG_RESULT($build_type)
498 #-----------------------------------------------------------------------------
499 all_debug_types="messages stack mungwall modules symbols"
501 AC_MSG_CHECKING([which debug types to enable])
502 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)]),
503 debug="$enableval",debug="")
505 if test "$debug" = "" -o "$debug" = "no"; then
507 elif test "$debug" = "yes"; then
511 if test "$debug" = "all" ; then
512 debug=$all_debug_types
513 for d in $all_debug_types; do
514 export aros_${d}_debug="1"
517 for d in $all_debug_types; do
518 export aros_${d}_debug="0"
522 if test "$debug" != "none"; then
523 debug=`echo $debug | sed s/,/\ /g`
526 for d2 in $all_debug_types; do
527 if test "$d2" = "$d"; then
532 if test "$found" = "0"; then
533 AC_MSG_ERROR([unrecognized debug type "$d". Available types are: all none $all_debug_types])
535 export aros_${d}_debug="1"
539 AC_MSG_RESULT($debug)
541 if test "$aros_messages_debug" = "1"; then
542 aros_messages_debug="-DADEBUG=1 -DMDEBUG=1"
544 aros_messages_debug=""
546 if test "$aros_symbols_debug" = "1"; then
547 aros_symbols_debug="-g"
549 aros_symbols_debug=""
552 # These are the flags to pass when compiling debugged programs
553 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
555 aros_debug_ldflags="$aros_symbols_debug"
557 #-----------------------------------------------------------------------------
558 # Checking for distcc and ccache.
560 # Always apply the transforms in this particular order. Basically you should
561 # always run 'ccache distcc compiler' in that order for the best performance.
563 AC_MSG_CHECKING([whether to enable distcc])
564 AC_ARG_ENABLE(distcc,AC_HELP_STRING([--enable-distcc],[Use distcc as a front end to the compiler (default=no).]),distcc="$enableval",distcc="no")
565 if test "$distcc" != "" -a "$distcc" != "no"; then
566 # AC_CHECK_PROG will print out the result in this case
567 AC_PATH_PROG(DISTCC,[distcc],distcc,)
572 AC_MSG_CHECKING([whether to enable ccache])
573 AC_ARG_ENABLE(ccache,AC_HELP_STRING([--enable-ccache],[Use ccache as a front end to the compiler (default=no).]),ccache="$enableval",ccache="no")
574 if test "$ccache" != "" -a "$ccache" != "no"; then
575 # AC_CHECK_PROG will print out the result in this case
576 AC_CHECK_PROG(CCACHE,[ccache],ccache,)
581 #-----------------------------------------------------------------------------
582 AC_MSG_CHECKING([what optimization flags to use])
583 AC_ARG_WITH(optimization,AC_HELP_STRING([--with-optimization=FLAGS],[Use optimization flags FLAGS (default=-O2).]),optimization="$withval",optimization="unknown")
584 if test "$optimization" = "unknown"; then
585 dnl default is -O2 for normal builds, -O0 for debug builds
586 if test "$debug" != "none"; then
592 aros_config_cflags="$aros_config_cflags $optimization"
593 AC_MSG_RESULT($optimization)
595 #-----------------------------------------------------------------------------
596 AC_MSG_CHECKING([what target variant to enable])
597 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")
598 if test "$target_variant" = "none"; then
599 aros_target_variant=""
600 aros_target_suffix=""
602 aros_target_variant="$target_variant"
603 aros_target_suffix="-$target_variant"
605 AC_MSG_RESULT($enableval)
607 target_bootloader="none"
609 #-----------------------------------------------------------------------------
610 # This is the target configuration switch.
613 aros_target_arch="linux"
614 case "$target_cpu" in
616 aros_target_cpu="m68k"
617 aros_object_format="m68kelf"
618 aros_flavour="emulcompat"
619 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__linux__"
620 aros_shared_ldflags="-Wl,-T,\$(TOP)/config/linux/m68k/script.so"
621 aros_kernel_ldflags="-Wl,-rpath,./lib,-T,\$(TOP)/config/linux/m68k/script.normal"
622 gcc_target_cpu="mc68000"
625 aros_target_cpu="i386"
626 aros_object_format="elf_i386"
627 aros_flavour="emulation"
628 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__linux__"
629 aros_default_wbdepth=8
630 gcc_target_cpu="i386"
633 aros_target_cpu="x86_64"
634 aros_object_format="elf_x86_64"
635 aros_flavour="emulation"
636 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__linux__"
637 aros_config_cflags="$aros_config_cflags -mno-red-zone"
638 aros_default_wbdepth=8
639 gcc_target_cpu="x86_64"
642 aros_target_cpu="ppc"
643 aros_object_format="elf32ppc"
644 aros_flavour="emulation"
645 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
646 aros_default_wbdepth=8
650 # Same as powerpc, but I need this for the nightly build to work again.
651 # Actually, the nightly should be made working with powerpc target.
652 # That just was too much work for the moment, another week or two.
654 aros_target_cpu="ppc"
655 aros_object_format="elf32ppc"
656 aros_flavour="emulation"
657 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
658 aros_default_wbdepth=8
662 # Same as powerpc, but I need this for the nightly build to work again.
663 # Actually, the nightly should be made working with powerpc target.
664 # That just was too much work for the moment, another week or two.
666 aros_target_cpu="ppc"
667 aros_object_format="elf32ppc"
668 aros_flavour="emulation"
669 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
670 aros_default_wbdepth=8
674 AC_MSG_ERROR("Unknown CPU for Linux -- $target_cpu")
680 aros_target_arch="pc"
681 aros_shared_default="no"
682 target_bootloader="grub"
683 case "$target_cpu" in
685 aros_target_cpu="i386"
687 dnl If somebody hasn't already set the target object
688 dnl format, then use this value. Mostly to support
689 dnl FreeBSD cross-compilation.
690 dnl TODO: Remove when we always use our compiler.
692 if test "$aros_object_format" = "" ; then
693 aros_object_format="elf_i386"
695 aros_flavour="standalone"
696 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
697 aros_kernel_ldflags=""
698 aros_default_wbwidth=640
699 aros_default_wbheight=480
700 gcc_target_cpu="i386"
703 aros_target_cpu="x86_64"
705 if test "$aros_object_format" = "" ; then
706 aros_object_format="elf_x86_64"
708 aros_flavour="standalone"
709 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
710 aros_config_cflags="$aros_config_cflags -fno-asynchronous-unwind-tables -mno-red-zone"
711 aros_kernel_ldflags=""
712 aros_default_wbwidth=640
713 aros_default_wbheight=480
714 gcc_target_cpu="x86_64"
717 AC_MSG_ERROR("Unknown native CPU -- $target_cpu")
723 aros_target_arch="prep"
724 aros_shared_default="no"
725 aros_target_cpu="ppc"
726 aros_object_format="elf32ppc"
727 aros_flavour="ppcnative"
728 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
729 aros_kernel_ldflags=""
730 aros_default_wbwidth=640
731 aros_default_wbheight=480
733 case "$target_cpu" in
735 aros_target_cc="ppc-linux-gcc -pipe"
736 aros_target_ld="ppc-linux-ld"
737 aros_target_as="ppc-linux-as"
738 aros_target_ar="ppc-linux-ar"
739 aros_target_ranlib="ppc-linux-ranlib"
740 aros_target_nm="ppc-linux-nm"
741 aros_target_strip="ppc-linux-strip"
742 aros_target_objcopy="ppc-linux-objcopy"
743 aros_target_objdump="ppc-linux-objdump"
744 aros_shared_ld="ppc-linux-ld"
745 aros_kernel_ld="ppc-linux-ld"
753 aros_target_arch="freebsd"
754 aros_target_cpu="i386"
755 aros_flavour="emulation"
756 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
757 gcc_target_cpu="i386"
759 aros_target_strip_flags="-x"
763 aros_target_arch="darwin"
764 aros_target_cpu="i386"
765 aros_flavour="emulation"
766 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
767 gcc_target_cpu="i386"
769 aros_target_strip_flags="-x"
773 aros_target_arch="netbsd"
774 case "$target_cpu" in
776 aros_target_cpu="m68k"
777 aros_object_format="m68kelf"
778 aros_flavour="emulcompat"
779 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
780 gcc_target_cpu="mc68000"
783 aros_target_cpu="i386"
784 aros_object_format="elf_i386"
785 aros_flavour="emulation"
786 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
787 aros_default_wbdepth=8
788 gcc_target_cpu="i386"
791 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
794 aros_target_genmap="-Wl,-M -Xlinker >"
795 aros_flavour="emulation"
796 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
800 aros_target_arch="openbsd"
801 case "$target_cpu" in
803 aros_target_cpu="i386"
804 aros_object_format="elf_i386"
805 aros_flavour="emulation"
806 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
807 gcc_target_cpu="i386"
810 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
813 aros_target_genmap="-Wl,-M -Xlinker >"
814 aros_target_nm_flags="-u"
815 aros_flavour="emulation"
819 aros_target_arch="solaris"
820 case "$target_cpu" in
822 aros_target_cpu="sparc"
823 aros_object_format="elf_sparc"
824 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
825 gcc_target_cpu="sparc"
828 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
831 aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
832 aros_flavour="emulation"
836 aros_target_arch="morphos"
837 aros_shared_default="no"
838 aros_target_cpu="ppc"
839 aros_object_format="elf_ppc"
840 aros_flavour="nativecompat"
841 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
846 aros_target_arch="sam440"
847 aros_shared_default="no"
848 aros_target_cpu="ppc"
849 aros_object_format="elf32ppc"
850 aros_flavour="ppcnative"
851 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
852 aros_kernel_ldflags=""
853 aros_default_wbwidth=640
854 aros_default_wbheight=480
855 aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
856 gcc_target_cpu="powerpc"
857 case "$target_cpu" in
859 aros_target_cc="powerpc-linux-gcc -pipe"
860 aros_target_ld="powerpc-linux-ld"
861 aros_target_as="powerpc-linux-as"
862 aros_target_ar="powerpc-linux-ar"
863 aros_target_ranlib="powerpc-linux-ranlib"
864 aros_target_nm="powerpc-linux-nm"
865 aros_target_strip="powerpc-linux-strip"
866 aros_target_objcopy="powerpc-linux-objcopy"
867 aros_target_objdump="powerpc-linux-objdump"
868 aros_shared_ld="powerpc-linux-ld"
869 aros_kernel_ld="powerpc-linux-ld"
877 aros_target_arch="amiga"
878 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
879 aros_shared_default="no"
881 aros_config_cflags="$aros_config_cflags -fomit-frame-pointer -fbuiltin -ffreestanding"
883 case "$target_cpu" in
885 aros_target_cpu="m68k"
886 aros_object_format="m68kelf"
887 aros_flavour="nativecompat"
888 gcc_target_cpu="mc68000"
892 aros_flavour="native"
896 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
902 aros_target_arch="cygwin"
903 aros_shared_default="no"
904 case "$target_cpu" in
906 aros_target_cpu="i386"
907 aros_object_format="elf_i386"
908 aros_flavour="emulation"
909 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__CYGWIN32__"
910 aros_shared_cflags=""
911 aros_default_wbdepth=8
912 gcc_target_cpu="i386"
915 AC_MSG_ERROR("Unknown CPU for CygWin -- $target_cpu")
921 aros_target_arch="mingw32"
922 aros_shared_default="no"
923 case "$target_cpu" in
925 aros_target_cpu="i386"
926 aros_object_format="elf_i386"
927 aros_flavour="emulation"
928 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
929 aros_shared_cflags=""
930 aros_default_wbdepth=8
931 gcc_target_cpu="i386"
934 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
939 aros_target_arch="pp"
940 aros_shared_default="no"
941 case "$target_cpu" in
943 aros_target_cpu="m68k"
944 aros_object_format="m68kelf"
945 aros_flavour="palmnative"
946 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
947 aros_kernel_ldflags=""
948 aros_default_wbwidth=160
949 aros_default_wbheight=160
950 aros_default_wbdepth=1
951 aros_target_cc="m68k-elf-gcc -pipe"
952 aros_target_ld="$(which m68k-elf-ld)"
953 aros_target_as="m68k-elf-gcc -pipe"
954 aros_shared_ld="m68k-elf-gcc"
955 aros_kernel_ld="m68k-elf-gcc"
956 aros_target_ar="m68k-elf-ar"
957 aros_target_ar_flags="cru"
958 aros_target_ranlib="m68k-elf-ranlib"
959 aros_target_nm="m68k-elf-nm"
960 aros_target_objcopy="m68k-elf-objcopy"
961 aros_target_objdump="m68k-elf-objdump"
962 aros_compiler_libs="-lgcc1"
963 aros_shared_default=no
964 aros_shared_cflags="-fpic"
965 aros_shared_aflags=""
966 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
967 aros_kernel_ldflags="-Wl,-rpath,./lib"
968 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug $aros_messages_debug -mc68000 -Wa,-mc68000"
970 aros_debug_ldflags="$aros_symbols_debug"
971 aros_mungwall_debug="0"
972 aros_modules_debug="0"
973 gcc_target_cpu="mc68000"
974 ignore_undefined_symbols="-ius"
977 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
983 aros_target_arch="mac"
984 aros_shared_default="no"
985 case "$target_cpu" in
987 aros_target_cpu="m68k"
988 aros_object_format="m68kelf"
989 aros_flavour="mac68knative"
990 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
991 aros_default_wbwidth=512
992 aros_default_wbheight=384
993 aros_default_wbdepth=8
994 aros_target_cc="m68k-elf-gcc -pipe"
995 aros_target_ld="$(which m68k-elf-ld)"
996 aros_target_as="m68k-elf-gcc -pipe"
997 aros_shared_ld="m68k-elf-gcc"
998 aros_kernel_ld="m68k-elf-gcc"
999 aros_target_ar="m68k-elf-ar"
1000 aros_target_ar_flags="cru"
1001 aros_target_ranlib="m68k-elf-ranlib"
1002 aros_target_nm="m68k-elf-nm"
1003 aros_target_objcopy="m68k-elf-objcopy"
1004 aros_target_objdump="m68k-elf-objdump"
1005 aros_compiler_libs="-lgcc1"
1006 aros_shared_default=no
1007 aros_shared_cflags="-fpic"
1008 aros_shared_aflags=""
1009 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1010 aros_kernel_ldflags="-Wl,-rpath,./lib"
1011 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug $aros_messages_debug -mc68000"
1012 aros_debug_aflags=""
1013 aros_debug_ldflags="$aros_symbols_debug"
1014 aros_mungwall_debug="0"
1015 aros_modules_debug="0"
1016 gcc_target_cpu="mc68000"
1017 ignore_undefined_symbols="-ius"
1020 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
1026 AC_MSG_ERROR([Unsupported target architecture $target])
1030 AC_MSG_CHECKING([Where to download sourcecode for external ports])
1031 AC_ARG_WITH(portssources,AC_HELP_STRING([--with-portssources=DIR],[Where to download sourcecode for external ports]),with_portssrcdir=$withval,with_portssrcdir="default")
1032 if test "$with_portssrcdir" = "default"; then
1033 AROS_PORTSSRCDIR="$AROS_BUILDDIR/bin/Sources"
1035 AROS_PORTSSRCDIR="$with_portssrcdir"
1037 AC_MSG_RESULT($AROS_PORTSSRCDIR)
1039 AC_MSG_CHECKING([which bootloader to use])
1040 AC_ARG_WITH(bootloader,AC_HELP_STRING([--with-bootloader=NAME],[Use a specific bootloader]),target_bootloader=$withval,target_bootloader=$target_bootloader)
1041 if test "$target_bootloader" = "none"; then
1042 aros_target_bootloader=""
1044 aros_target_bootloader="$target_bootloader"
1046 AC_MSG_RESULT($target_bootloader)
1048 # Check LZO when compiling the grub2 bootloader on i386/x86_64.
1049 aros_liblzo_check="no"
1050 case "$aros_target_bootloader" in
1052 case "$target_cpu" in
1054 aros_liblzo_check="yes"
1057 aros_liblzo_check="yes"
1068 if test "$aros_liblzo_check" = "yes"; then
1069 # There are three possibilities. LZO version 2 installed with the name
1070 # liblzo2, with the name liblzo, and LZO version 1.
1071 AC_CHECK_LIB(lzo2, __lzo_init_v2, [LIBLZO="-llzo2"],
1072 AC_CHECK_LIB(lzo, __lzo_init_v2, [LIBLZO="-llzo"],
1073 AC_CHECK_LIB(lzo, __lzo_init2, [LIBLZO="-llzo"],
1074 AC_MSG_ERROR([LZO library version 1.02 or later is required]))))
1077 LIBS="$LIBS $LIBLZO"
1078 AC_CHECK_FUNC(lzo1x_999_compress, ,
1079 [AC_MSG_ERROR([LZO1X-999 must be enabled])])
1081 # LZO version 2 uses lzo/lzo1x.h, while LZO version 1 uses lzo1x.h.
1082 AC_CHECK_HEADERS(lzo/lzo1x.h lzo1x.h)
1085 AC_MSG_CHECKING([which GUI Theme to use])
1086 AC_ARG_WITH(theme,AC_HELP_STRING([--with-theme=NAME],[Use a specific GUI Theme]),target_guitheme=$withval,target_guitheme="default")
1087 if test "$target_guitheme" = "default"; then
1088 aros_target_guitheme="Ice"
1090 aros_target_guitheme="$target_guitheme"
1092 AC_MSG_RESULT($aros_target_guitheme)
1094 # Find out if we are cross-compiling (ie. if we can't use the host compiler
1097 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
1100 if test "$aros_host_arch" == "darwin" ; then
1104 # Set prefix for target compiler etc. if we're cross-compiling
1105 # (should possibly be earlier but needs to be after AC_PROG_CC)
1106 if test "$cross_compiling" = "yes" ; then
1107 target_tool_prefix=${target_cpu}-elf-
1108 CC=${target_tool_prefix}gcc
1111 # Find all the tools we need to compile. This could be cross-compiling
1112 # though! If that is the case we use the GNU form of the target and
1113 # simply add this to the front of the binary name. This is rather simple,
1114 # but it should work under most circumstances.
1116 # The default tools are to use the same as the host, but only if the
1117 # host and target CPU are the same. With GCC this is normally enough.
1121 aros_shared_ld="$aros_host_ld"
1123 aros_target_mkdep="$aros_host_mkdep"
1124 aros_target_incl_def="$aros_host_incl"
1126 AC_PATH_PROG(aros_kernel_cc,$CC)
1128 # The default tools executables to be linked to.
1129 AROS_TOOL_TARGET(aros_target_as_ln,as)
1130 AROS_REQUIRED(as,$aros_target_as_ln)
1131 AROS_TOOL_TARGET(aros_kernel_ld,ld)
1132 AROS_REQUIRED(ld,$aros_kernel_ld)
1133 AROS_TOOL_TARGET(aros_target_ar_ln,ar)
1134 AROS_REQUIRED(ar,$aros_target_ar_ln)
1135 AROS_TOOL_TARGET(aros_target_nm_ln,nm)
1136 AROS_REQUIRED(nm,$aros_target_nm_ln)
1137 AROS_TOOL_TARGET(aros_target_objcopy_ln,objcopy)
1138 AROS_REQUIRED(objcopy,$aros_target_objcopy_ln)
1139 AROS_TOOL_TARGET(aros_target_objdump_ln,objdump)
1140 AROS_REQUIRED(objdump,$aros_target_objdump_ln)
1141 AROS_TOOL_TARGET(aros_target_ranlib_ln,ranlib)
1142 AROS_REQUIRED(ranlib,$aros_target_ranlib_ln)
1143 AROS_TOOL_TARGET(aros_target_strip_ln,strip)
1144 AROS_REQUIRED(strip,$aros_target_strip_ln)
1146 if test "$GCC" = "yes"; then
1147 aros_target_cc_path=`$aros_kernel_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
1150 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/config"
1151 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
1152 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
1153 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
1154 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
1155 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
1156 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
1158 # aros_cc_pre is a variable that is added to the front of the compiler name
1159 # in the generated aros-gcc shell script. We need this to enable the cache
1160 # to work across cleaned builds. Also, support DISTCC using the correct
1161 # environment variable.
1164 if test "x${DISTCC}" != "x" ; then
1165 if test "x${CCACHE}" != "x" ; then
1166 aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
1168 aros_cc_pre="${DISTCC} "
1171 if test "x${CCACHE}" != "x" ; then
1172 aros_cc_pre="${CCACHE} "
1176 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros"
1178 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
1179 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
1180 AC_SUBST(aros_target_nix_ldflags,-nix)
1181 AC_SUBST(aros_target_detach_ldflags,-detach)
1182 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
1185 aros_target_cc="${prefix}-gcc"
1186 aros_target_as="${prefix}-as"
1187 aros_target_ld="${prefix}-ld"
1188 aros_target_ar="${prefix}-ar $aros_target_ar_flags"
1189 aros_target_objcopy=${prefix}-objcopy
1190 aros_target_objdump=${prefix}-objdump
1191 aros_target_ranlib="${prefix}-ranlib $aros_target_ranlib_flags"
1192 aros_target_nm="${prefix}-nm $aros_target_nm_flags"
1193 aros_kernel_nm="${prefix}-nm"
1194 aros_target_strip=${prefix}-strip
1196 # Find the system include path. We can suggest that an alternative is
1197 # used if we don't get it correct. The default is to use /usr/include.
1198 # Which is set in the aros_target_incl_def variable.
1200 AC_ARG_ENABLE(includes,
1201 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
1202 [aros_target_incl=$enable_includes], [aros_target_incl=$aros_target_incl_def])
1204 dnl find out about the target cc's include path
1205 AC_MSG_CHECKING([for the target compiler's include path])
1206 if test "$aros_target_cc_includes" = "" ; then
1207 #try to guess where the directory is
1208 aros_target_cc_includes=`dirname \`${aros_kernel_cc} -print-libgcc-file-name\``/include
1209 if ! test -d $aros_target_cc_includes; then
1210 #the directory doesn't exist, we need to do some more work
1211 aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
1213 #these are the headers we're looling for
1214 headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
1215 stddef.h xmmintrin.h iso646.h stdarg.h unwind.h \
1219 for h in $headers; do
1220 #which other headers each of the above headers needs?
1221 deps=$(echo "#include <$h>" | \
1222 $aros_host_cc -E -M - 2>/dev/null | \
1223 sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
1225 #copy all the needed headers to a directory beneath gendir
1228 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
1229 sed -n "s,^.*/include\(/.*\),\1,p")
1230 ! test -d $dir && mkdir -p $dir
1231 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
1236 AC_MSG_RESULT($aros_target_cc_includes)
1238 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
1239 AC_MSG_CHECKING([for default resolution of WBScreen])
1240 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
1241 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
1242 if test "$resolution" = "yes" ; then
1245 if test "$resolution" = "no" ; then
1248 if test "$resolution" != "none" ; then
1249 aros_default_wbwidth=`echo $resolution | cut -d'x' -f1`
1250 aros_default_wbheight=`echo $resolution | cut -d'x' -f2`
1251 aros_default_wbdepth=`echo $resolution | cut -d'x' -f3`
1253 AC_MSG_RESULT($aros_default_wbwidth x $aros_default_wbheight x $aros_default_wbdepth)
1254 aros_cv_default_wbwidth=$aros_default_wbwidth
1255 aros_cv_default_wbheight=$aros_default_wbheight
1256 aros_cv_default_wbdepth=$aros_default_wbdepth
1258 dnl See if the user wants the BOCHS hack for native flavour
1259 AC_MSG_CHECKING([if bochs hack is enabled])
1260 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")
1261 if test "$bochs_hack" = "yes" ; then
1264 AC_MSG_RESULT($bochs_hack)
1266 dnl See if the user wants the serial debug output for native flavour
1267 AC_MSG_CHECKING([if serial debug is enabled])
1268 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)
1269 if test "$aros_serial_debug" = 0 ; then
1270 serial_debug_forced=""
1271 if test "$serial_debug" = "yes" ; then
1274 if test "$serial_debug" = "no" ; then
1278 serial_debug_forced="(forced)"
1279 serial_debug=$aros_serial_debug
1281 if test "$serial_debug" != "none" ; then
1282 aros_serial_debug=$serial_debug
1283 AC_MSG_RESULT($serial_debug_forced on port $serial_debug)
1288 dnl See if the user wants the palm debug output hack for palm native flavour
1289 AC_MSG_CHECKING([if palm debug hack is enabled])
1290 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")
1291 if test "$palm_debug_hack" = "yes" ; then
1292 aros_palm_debug_hack="1"
1294 AC_MSG_RESULT($palm_debug_hack)
1297 dnl See if the user wants nesting supervisor activated for unix flavour
1298 AC_MSG_CHECKING([if nesting supervisor support is enabled])
1299 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")
1300 if test "$nesting_supervisor" = "yes" ; then
1301 aros_nesting_supervisor="1"
1303 AC_MSG_RESULT($nesting_supervisor)
1306 dnl things specifically required for hosted flavours
1307 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1309 if test "x-$aros_host_arch" != "x-darwin" ; then
1310 dnl some kind of dynamic library access system is required for hostlib.resource
1311 AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
1312 if test "x-$have_dl" = "x-no" ; then
1313 AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
1314 aros_host_ldflags="$aros_host_ldflags -ldl"],
1317 if test "x-$have_dl" = "x-no" ; then
1318 AC_MSG_ERROR([dlopen() dynamic linker functions not available])
1324 AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
1325 [build X11 hidd for hosted (default=auto)]),
1326 x11_hidd="$enableval",
1328 case "x-$x11_hidd" in
1329 x-yes|x-no|x-auto) ;;
1330 *) x11_hidd="auto" ;;
1334 if test "x-$x11_hidd" != "x-no" ; then
1340 for path in $x_libraries
1342 x_cflags="$x_cflags -L$path"
1345 for path in $x_includes
1347 x_cflags="$x_cflags -I$path"
1350 if test "x-$no_x" = "x-yes" ; then
1353 if test "x-$x11_hidd" != "x-auto" ; then
1354 dnl and they explicitly asked for it, bail out
1355 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
1359 dnl found it, setup the metatarget
1360 x11_hidd_target=kernel-x11gfx
1363 dnl setup shared memory extensions
1364 AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
1365 [use X11 shared memory (default=auto)]),
1366 x11_hidd_shm="$enableval",
1367 x11_hidd_shm="auto")
1368 case "x-$x11_hidd_shm" in
1369 x-yes|x-no|x-auto) ;;
1370 *) x11_hidd_shm="auto" ;;
1376 if test "x-$x11_hidd_shm" != "x-no" ; then
1378 dnl system shm headers
1379 AC_CHECK_HEADERS(sys/ipc.h)
1380 AC_CHECK_HEADERS(sys/shm.h)
1383 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
1385 dnl make sure X libs have shm functions
1386 save_cflags="$CFLAGS"
1387 CFLAGS="$CFLAGS $x_cflags"
1388 AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
1389 CFLAGS="$save_cflags"
1393 dnl detection done, prepare output
1394 if test "x-$have_xshm" = "x-yes" ; then
1397 elif test "x-$x11_hidd_shm" = "x-yes" ; then
1398 dnl they explicitly asked for it, but we can't do it
1399 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
1401 dnl otherwise just disable it
1406 dnl setup vidmode (fullscreen) extensions
1407 AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
1408 [use X11 vidmode extension (default=auto)]),
1409 x11_hidd_vidmode="$enableval",
1410 x11_hidd_vidmode="auto")
1411 case "x-$x11_hidd_vidmode" in
1412 x-yes|x-no|x-auto) ;;
1413 *) x11_hidd_vidmode="auto" ;;
1419 if test "x-$x11_hidd_vidmode" != "x-no" ; then
1421 dnl make sure X libs have vidmode functions
1422 save_cflags="$CFLAGS"
1423 CFLAGS="$CFLAGS $x_cflags"
1424 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
1425 CFLAGS="$save_cflags"
1428 dnl detection done, prepare output
1429 if test "x-$have_vidmode" = "x-yes" ; then
1430 dnl we can do vidmode
1431 DO_VIDMODE_SUPPORT="1"
1432 elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
1433 dnl they explicitly asked for it, but we can't do it
1434 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
1436 dnl otherwise just disable it
1437 DO_VIDMODE_SUPPORT="0"
1441 aros_host_x11_includes=$x_includes
1442 aros_host_x11_libdirs=$x_libraries
1447 AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
1448 [build SDL hidd for hosted (default=auto)]),
1449 sdl_hidd="$enableval",
1451 case "x-$sdl_hidd" in
1452 x-yes|x-no|x-auto) ;;
1453 *) sdl_hidd="auto" ;;
1457 if test "x-$sdl_hidd" != "x-no" ; then
1460 AM_PATH_SDL([1.2.10], have_sdl="yes", have_sdl="no")
1462 if test "x-$have_sdl" != "x-yes" ; then
1465 if test "x-$sdl_hidd" != "x-auto" ; then
1466 dnl and they explicitly asked for it, bail out
1467 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
1471 dnl found it, setup the metatarget
1472 sdl_hidd_target=kernel-hidd-sdl
1473 aros_host_sdl_cflags=SDL_CFLAGS
1474 aros_host_sdl_libs=SDL_LIBS
1481 dnl See if the user wants dbus.library
1482 AC_MSG_CHECKING([if building of dbus.library is enabled])
1483 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
1484 if test "$dbus" = "yes" ; then
1486 DBUS_CFLAGS=`pkg-config --cflags dbus-1`
1487 DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
1488 KERNEL_DBUS_KOBJ=kernel-dbus-kobj
1489 KERNEL_DBUS_INCLUDES=kernel-dbus-includes
1493 AC_MSG_RESULT($dbus)
1496 dnl --------------------------------------------------------------------
1497 dnl Configuration Output Section
1498 dnl --------------------------------------------------------------------
1503 AC_SUBST(aros_flavour)
1504 AC_SUBST(aros_flavour_uc)
1505 AC_SUBST(AROS_BUILDDIR)
1506 AC_SUBST(AROS_SRCDIR)
1507 AC_SUBST(AROS_PORTSSRCDIR)
1510 AC_SUBST(aros_cc_pre)
1511 AC_SUBST(aros_host_strip)
1512 AC_SUBST(aros_host_arch)
1513 AC_SUBST(aros_host_cpu)
1514 AC_SUBST(aros_host_cc)
1515 AC_SUBST(aros_host_ar)
1516 AC_SUBST(aros_host_ranlib)
1517 AC_SUBST(aros_host_ld)
1518 AC_SUBST(aros_host_make)
1519 AC_SUBST(aros_host_cflags)
1520 AC_SUBST(aros_host_ldflags)
1521 AC_SUBST(aros_host_debug)
1522 AC_SUBST(aros_host_mkdep)
1523 AC_SUBST(aros_host_mkargs)
1524 AC_SUBST(aros_host_exe_suffix)
1525 AC_SUBST(aros_host_lib_suffix)
1526 AC_SUBST(aros_tools_dir)
1527 AC_SUBST(aros_host_aclocal)
1528 AC_SUBST(aros_host_autoconf)
1529 AC_SUBST(aros_host_autoheader)
1530 AC_SUBST(aros_host_automake)
1533 AC_SUBST(aros_target_guitheme)
1534 AC_SUBST(aros_target_bootloader)
1535 AC_SUBST(aros_target_arch)
1536 AC_SUBST(aros_target_cpu)
1537 AC_SUBST(aros_target_variant)
1538 AC_SUBST(aros_target_suffix)
1539 AC_SUBST(aros_target_incl)
1540 AC_SUBST(aros_target_ar)
1541 AC_SUBST(aros_target_ranlib)
1542 AC_SUBST(aros_kernel_nm)
1543 AC_SUBST(aros_target_cc)
1544 AC_SUBST(aros_kernel_cc)
1545 AC_SUBST(aros_target_as)
1546 AC_SUBST(aros_target_ld)
1547 AC_SUBST(aros_kernel_ld)
1548 AC_SUBST(aros_target_cc_includes)
1549 AC_SUBST(aros_target_cc_path)
1550 AC_SUBST(aros_target_objdump)
1551 AC_SUBST(aros_target_objcopy)
1552 AC_SUBST(aros_target_strip)
1553 AC_SUBST(aros_target_nm)
1554 AC_SUBST(aros_shared_default)
1555 AC_SUBST(aros_shared_ld)
1556 AC_SUBST(aros_object_format)
1557 AC_SUBST(aros_compiler_libs)
1559 AC_SUBST(aros_config_cflags)
1560 AC_SUBST(aros_config_aflags)
1561 AC_SUBST(aros_config_ldflags)
1563 AC_SUBST(aros_shared_cflags)
1564 AC_SUBST(aros_shared_aflags)
1565 AC_SUBST(aros_shared_ldflags)
1566 AC_SUBST(aros_kernel_ldflags)
1567 AC_SUBST(aros_debug_cflags)
1568 AC_SUBST(aros_debug_aflags)
1569 AC_SUBST(aros_debug_ldflags)
1570 AC_SUBST(aros_target_genmap)
1571 AC_SUBST(aros_target_strip_flags)
1574 AC_SUBST(x11_hidd_target)
1575 AC_SUBST(sdl_hidd_target)
1577 AC_SUBST(aros_default_wbwidth)
1578 AC_SUBST(aros_default_wbheight)
1579 AC_SUBST(aros_default_wbdepth)
1580 AC_SUBST(DO_XSHM_SUPPORT)
1581 AC_SUBST(DO_VIDMODE_SUPPORT)
1583 AC_SUBST(aros_host_x11_includes)
1584 AC_SUBST(aros_host_x11_libdirs)
1585 AC_SUBST(aros_host_sdl_cflags)
1586 AC_SUBST(aros_host_sdl_libs)
1588 # Native version related
1589 AC_SUBST(aros_bochs_hack)
1590 AC_SUBST(aros_serial_debug)
1592 # Palm native version related
1593 AC_SUBST(aros_palm_debug_hack)
1595 # Unix/Hosted version related
1596 AC_SUBST(aros_nesting_supervisor)
1599 AC_SUBST(ENABLE_DBUS)
1600 AC_SUBST(DBUS_CFLAGS)
1601 AC_SUBST(DBUS_LIBFLAGS)
1602 AC_SUBST(KERNEL_DBUS_KOBJ)
1603 AC_SUBST(KERNEL_DBUS_INCLUDES)
1606 AC_SUBST(aros_debug)
1607 AC_SUBST(aros_mungwall_debug)
1608 AC_SUBST(aros_stack_debug)
1609 AC_SUBST(aros_modules_debug)
1611 # Collect-aros stuff: "-ius" to ignore undefined symbols
1612 AC_SUBST(ignore_undefined_symbols)
1614 # C compiler related
1615 AC_SUBST(gcc_target_cpu)
1617 dnl Prepare for output, make up all the generated patches
1618 case "$aros_flavour" in
1619 emulation) aros_flavour_uc="AROS_FLAVOUR_EMULATION"
1620 aros_flavour="emulation" ;;
1621 emulcompat) aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
1622 aros_flavour="emulation" ;;
1623 standalone) aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
1624 aros_flavour="standalone";;
1625 native) aros_flavour_uc="AROS_FLAVOUR_NATIVE"
1626 aros_flavour="native" ;;
1627 nativecompat) aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
1628 aros_flavour="native" ;;
1629 linklib) aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
1630 aros_flavour="linklib" ;;
1631 palmnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1632 aros_flavour="palmnative" ;;
1633 mac68knative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1634 aros_flavour="mac68knative" ;;
1635 ppcnative) aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
1636 aros_flavour="ppcnative" ;;
1639 if test ! -d ${aros_inc_dir} ; then
1640 ${MKDIR} ${aros_inc_dir}
1642 if test ! -d ${aros_geninc_dir} ; then
1643 ${MKDIR} ${aros_geninc_dir}
1645 if test ! -d ${aros_hostcfg_dir} ; then
1646 ${MKDIR} ${aros_hostcfg_dir}
1648 if test ! -d ${aros_targetcfg_dir} ; then
1649 ${MKDIR} ${aros_targetcfg_dir}
1651 if test ! -d ${aros_tools_dir} ; then
1652 ${MKDIR} ${aros_tools_dir}
1654 if test ! -d ${aros_scripts_dir} ; then
1655 ${MKDIR} ${aros_scripts_dir}
1658 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
1660 AC_CONFIG_COMMANDS([compiler_executable],
1662 prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
1664 prefix="${prefix}/${aros_target_cpu}-aros"
1665 prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
1669 chmod a+x ${prefix2}-gcc ${prefix2}-ld
1671 ln -sf ${prefix2}-gcc ${prefix}-gcc
1672 ln -sf ${prefix2}-ld ${prefix}-ld
1674 ln -sf $aros_target_as_ln ${prefix}-as
1675 ln -sf $aros_target_nm_ln ${prefix}-nm
1676 ln -sf $aros_target_ar_ln ${prefix}-ar
1677 ln -sf $aros_target_ranlib_ln ${prefix}-ranlib
1678 ln -sf $aros_target_objcopy_ln ${prefix}-objcopy
1679 ln -sf $aros_target_objdump_ln ${prefix}-objdump
1680 ln -sf $aros_target_strip_ln ${prefix}-strip
1682 ln -sf $aros_target_as_ln ${prefix2}-as
1683 ln -sf $aros_target_nm_ln ${prefix2}-nm
1684 ln -sf $aros_target_ar_ln ${prefix2}-ar
1685 ln -sf $aros_target_ranlib_ln ${prefix2}-ranlib
1686 ln -sf $aros_target_objcopy_ln ${prefix2}-objcopy
1687 ln -sf $aros_target_objdump_ln ${prefix2}-objdump
1688 ln -sf $aros_target_strip_ln ${prefix2}-strip
1691 aros_tools_dir=${aros_tools_dir}
1692 aros_target_cpu=${aros_target_cpu}
1693 aros_target_arch=${aros_target_arch}
1694 aros_target_suffix=${aros_target_suffix}
1695 aros_target_nm_ln=${aros_target_nm_ln}
1696 aros_target_as_ln=${aros_target_as_ln}
1697 aros_target_ar_ln=${aros_target_ar_ln}
1698 aros_target_ranlib_ln=${aros_target_ranlib_ln}
1699 aros_target_objdump_ln=${aros_target_objdump_ln}
1700 aros_target_objcopy_ln=${aros_target_objcopy_ln}
1701 aros_target_strip_ln=${aros_target_strip_ln}
1704 AC_CONFIG_COMMANDS([genshared_executable],
1705 [chmod a+x ${aros_scripts_dir}/genshared],
1706 [aros_scripts_dir=${aros_scripts_dir}]
1708 AC_CONFIG_COMMANDS([genmf_executable],
1709 [chmod a+x ${aros_tools_dir}/genmf.py],
1710 [aros_tools_dir=${aros_tools_dir}]
1712 AC_CONFIG_COMMANDS([adflib_myaros.conf_executable],
1713 [chmod a+x tools/adflib/myconf.aros]
1720 ${aros_inc_dir}/config.h:config/config.h.in
1721 ${aros_geninc_dir}/config.h:config/config.h.in
1722 ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
1723 ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
1725 ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
1726 ${aros_targetcfg_dir}/specs:config/specs.in
1727 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-gcc:scripts/aros-gcc.in
1728 ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
1729 ${aros_scripts_dir}/genshared:compiler/c_lib/source/lib_source/genshared.in
1730 ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
1731 tools/adflib/myconf.aros
1732 tools/collect-aros/env.h
1737 dnl This is in order to not define SHARED_CFLAGS sometimes
1738 dnl We don't always do aros_shared_ar, aros_shared_cflags
1740 #XXX compatability...
1741 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
1743 if test -n "$aros_shared_cflags" ; then
1744 echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
1745 echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg