Don't use -iquote directly.
[cake.git] / configure.in
blob5f33e137bc1299eb5e05138c236381a4e826cc2b
1 dnl Copyright © 1997-2008, The AROS Development Team. All rights reserved.
2 dnl $Id$
3 dnl
4 dnl Desc: Autoconf source for configuration file
5 dnl Lang: english
7 #TODO
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 # ------------------------------------------------------------------------
15 AC_INIT(mmakefile)
16 AC_PREREQ(2.61)
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.
22 AC_CANONICAL_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
35     cross_compile=no
36 else
37     if test "$target" = "" ; then
38         target=$host_os-$host_cpu
39         cross_compile=no
40     else
41         cross_compile=yes
42     fi
44 AC_MSG_RESULT($target)
46 #don't know where else to put this...
47 AC_MSG_CHECKING([Building AROS in .. ])
48 AROS_BUILDDIR=$PWD
49 AC_MSG_RESULT($AROS_BUILDDIR)
51 AC_MSG_CHECKING([AROS Source in .. ])
52 srcpwd=`cd ${srcdir} ; ${PWDCMD-pwd}`
53 SRCDIR=${srcpwd}
54 AC_MSG_RESULT($SRCDIR)
56 # Parse the target field into something useful.
57 changequote(<<,>>)
58 target_os=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\1/'`
59 target_cpu=`echo $target | sed 's/^\([^-]*\)-\(.*\)$/\2/'`
60 changequote([,])
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 --------------------------------------------------------------------
72 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.
79 AC_PROG_CC
80 AC_PROG_CC_STDC
81 AC_PROG_CPP
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.
91 aros_host_cc="$CC"
92 AROS_TOOL_CCPATH(aros_host_ld,ld)
93 AROS_REQUIRED(ld,$aros_host_ld)
94 aros_host_make="make"
95 aros_host_cflags=$CFLAGS
96 aros_host_ldflags=$LDFLAGS
97 aros_host_debug="-g -O0"
98 aros_host_mkdep="\$(SRCDIR)/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 aclocal-1.9])
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 automake-1.9])
109 AROS_REQUIRED(aclocal/aclocal19/aclocal-1.9, $aros_host_aclocal)
110 AROS_REQUIRED(automake/automake19/automake-1.9, $aros_host_automake)
112 case "$aros_host_cc" in
113     *gcc*)
114         aros_host_cc_pipe="-pipe"
115         ;;
116     icc)
117         aros_host_cc_pipe=""
118         ;;
119     *)
120         aros_host_cc_pipe=""
121         ;;
122 esac
124 dnl Despite the name, this is really a host configuration variable.
125 aros_target_cc_includes=""
127 # This is the main host configuration section. It is where the host
128 # can change the values of any variables it needs to change. We do
129 # not look at anything that compiles to the target yet, we'll get
130 # to that later.
132 case "$host_os" in
133     aros*)
134         aros_host_arch="aros"
135         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
136         case "$host_cpu" in
137             *i?86*)
138                 aros_host_cpu="i386"
139                 ;;
140             *x86_64*)
141                 aros_host_cpu="x86_64"
142                 ;;
143             *)
144                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
145                 aros_host_cpu="$host_cpu"
146                 ;;
147         esac
148         ;;
150     linux*)
151         aros_host_arch="linux"
152         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
153         case "$host_cpu" in
154             *i?86*)
155                 aros_host_cpu="i386"
156                 ;;
157             *x86_64*)
158                 aros_host_cpu="x86_64"
159                 ;;
160             *m68k*)
161                 aros_host_cpu="m68k"
162                 ;;
163             *powerpc*)
164                 aros_host_cpu="ppc"
165                 ;;
166             *)
167                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
168                 aros_host_cpu="$host_cpu"
169                 ;;
170         esac
171         ;;
173     freebsd*)
174         aros_host_cc="$aros_host_cc $aros_host_cc_pipe -I/usr/local/include"
175         aros_host_make="gmake"
176         aros_host_arch="freebsd"
177         aros_host_cpu="i386"
179         aros_host_ldflags="$aros_host_ldflags -L/usr/local/lib -liconv"
181         dnl Need to override this here, it's just too hard later.
182         dnl This shouldn't be here at all...
183         dnl aros_target_cc_includes="/usr/include"
185         dnl FreeBSD 5.x (and later) has changed the default object format.
186         dnl The double [[]] is necessary to get around m4's quoting rules.
187         case $host_os in
188             freebsd[[234]]*)
189                 aros_object_format="elf_i386"
190                 ;;
192             *)
193                 aros_object_format="elf_i386_fbsd"
194                 ;;
195         esac
197         ;;
199     darwin*)
200         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
201         aros_host_arch="darwin"
202         case "$host_cpu" in
203             *i?86*)
204                 aros_host_cpu="i386"
205                 ;;
206             *powerpc*)
207                 aros_host_cpu="ppc"
208                 ;;
209             *)
210                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
211                 aros_host_cpu="$host_cpu"
212                 ;;
213         esac
215         aros_host_ldflags="$aros_host_ldflags -liconv"
217         ;;
219     netbsd*)
220         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
221         aros_host_make="gmake"
222         aros_host_arch="netbsd"
223         case "$host_cpu" in
224             *i?86*)
225                 aros_host_cpu="i386"
226                 ;;
227             *m68k*)
228                 aros_host_cpu="m68k"
229                 ;;
230             *)
231                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
232                 aros_host_cpu="$host_cpu"
233                 ;;
234         esac    
235         aros_host_lib_suffix=".0.0"
236         ;;
238     openbsd*)
239         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
240         aros_host_make="gmake"
241         aros_host_arch="openbsd"
242         case "$host_cpu" in
243             *i?86*)
244                 aros_host_cpu="i386"
245                 ;;
246             *)
247                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
248                 aros_host_cpu="$host_cpu"
249                 ;;
250         esac
251         ;;
252         
253     solaris*)
254         aros_host_arch="solaris"
255         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
256         case "$host_cpu" in
257             *i?86*)
258                 aros_host_cpu="i386"
259                 ;;
260             *sparc*)
261                 aros_host_cpu="sparc"
262                 ;;
263             *)
264                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
265                 aros_host_cpu="$host_cpu"
266                 ;;
267         esac
268         ;;
270     morphos*)
271         aros_host_arch="morphos"
272         aros_host_cpu="ppc"
273         ;;
275     amiga*)
276         aros_host_arch="amiga"
277         SORT="/gg/bin/sort"
278         TEST="/gg/bin/test"
279         UNIQ="/gg/bin/uniq"
280         FOR="for"
281         TOUCH="/gg/bin/touch"
282         case "$host_cpu" in
283             *m68k*)
284                 aros_host_cpu="m68k"
285                 ;;
286             *powerpc*)
287                 aros_host_cpu="ppc"
288                 ;;
289             *)
290                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
291                 aros_host_cpu="$host_cpu"
292                 ;;
293         esac
294         ;;
296     cygwin*)
297         aros_host_arch="cygwin"
298         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
299         case "$host_cpu" in
300             *i?86*)
301                 aros_host_cpu="i386"
302                 ;;
303             *)
304                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
305                 aros_host_cpu="$host_cpu"
306                 ;;
307         esac
308         ;;
310     mingw32*)
311         aros_host_arch="mingw32"
312         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
313         case "$host_cpu" in
314             *i?86*)
315                 aros_host_cpu="i386"
316                 ;;
317             *)
318                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
319                 aros_host_cpu="$host_cpu"
320                 ;;
321         esac
322         ;;
323     *)
324         AC_MSG_ERROR([Unsupported host architecture $host])
325         ;;
326 esac
328 AROS_PROG(aros_host_ar,[ar],[cr])
329 AROS_REQUIRED(ar,$aros_host_ar)
330 AROS_PROG(aros_host_ranlib,ranlib)
331 AROS_REQUIRED(ranlib,$aros_host_ranlib)
332 AROS_PROG(aros_host_strip,strip)
333 AROS_REQUIRED(strip,$aros_host_strip)
335 AROS_PROG(RM,[rm],[-rf])
336 AROS_REQUIRED(rm,$RM)
337 AROS_PROG(CP,[cp])
338 AROS_REQUIRED(cp,$CP)
339 AROS_PROG(MV,[mv])
340 AROS_REQUIRED(mv,$MV)
341 AROS_PROG(ECHO,[echo])
342 AROS_REQUIRED(echo,$ECHO)
343 AROS_PROG(MKDIR,[mkdir],[-p])
344 AROS_REQUIRED(mkdir,$MKDIR)
345 AROS_PROG(TOUCH,[touch])
346 AROS_REQUIRED(touch,$TOUCH)
347 AROS_PROG(SORT,[sort])
348 AROS_REQUIRED(sort,$SORT)
349 AROS_PROG(UNIQ,[uniq])
350 AROS_REQUIRED(uniq,$UNIQ)
351 AROS_PROG(NOP,[true])
352 AROS_REQUIRED(true,$NOP)
353 AROS_PROG(CAT,[cat])
354 AROS_REQUIRED(cat,$CAT)
355 AROS_PROG(BISON,[bison])
356 AROS_REQUIRED(bison,$BISON)
357 AROS_PROG(FLEX,[flex])
358 AROS_REQUIRED(flex,$FLEX)
359 AROS_PROG(PNGTOPNM,[pngtopnm])
360 AROS_REQUIRED(pngtopnm,$PNGTOPNM)
361 AROS_PROG(PPMTOILBM,[ppmtoilbm])
362 AROS_REQUIRED(ppmtoilbm,$PPMTOILBM)
363 AROS_PROG(SED,[sed])
364 AROS_REQUIRED(sed,$SED)
365 AROS_PROG(CHMOD,[chmod])
366 AROS_REQUIRED(chmod,$CHMOD)
368 AM_PATH_PYTHON(2.2.1)
370 AC_SUBST(FOR, for)
371 AC_SUBST(IF, if)
372 AC_SUBST(TEST, test)
373 AC_SUBST(CMP, cmp)
375 dnl ---------------------------------------------------------------------------
376 dnl Look for things about the host system, good for hosted targets.
377 dnl ---------------------------------------------------------------------------
379 # Check for some includes for the X11 HIDD and the kernel
380 AC_CHECK_HEADERS([sys/ipc.h sys/shm.h \
381     sys/mmap.h sys/mman.h sysexits.h \
382     sys/statfs.h sys/statvfs.h sys/vfs.h sys/param.h \
385 AC_CHECK_HEADERS([sys/mount.h],,,[#include <sys/param.h>])
387 AC_HEADER_DIRENT
388 AC_HEADER_STAT
389 AC_HEADER_STDC
390 AC_HEADER_SYS_WAIT
391 AC_HEADER_TIME
392 AC_STRUCT_ST_BLKSIZE
393 AC_STRUCT_ST_BLOCKS
394 AC_STRUCT_ST_RDEV
395 AC_STRUCT_TM
396 AC_STRUCT_TIMEZONE
397 AC_TYPE_OFF_T
398 AC_TYPE_PID_T
399 AC_TYPE_SIZE_T
400 AC_TYPE_UID_T
402 AC_CHECK_MEMBERS(struct tm.tm_gmtoff)
404 # Look for some functions
405 AC_CHECK_FUNCS([getpagesize kqueue statfs statvfs \
406     clone kse_create rfork_thread thr_create sa_register \
407     getcontext makecontext setcontext sigaltstack swapcontext])
409 AC_FUNC_MMAP
412 dnl --------------------------------------------------------------------
413 dnl Target Configuration Section
414 dnl --------------------------------------------------------------------
416 dnl The target configuration section is responsible for setting up all
417 dnl the paths for includes, and tools required to build AROS to some
418 dnl particular target.
420 aros_config_cflags="-Wall -Werror-implicit-function-declaration"
421 aros_config_aflags="-Wall -x assembler-with-cpp -c"
422 aros_config_ldflags=""
424 aros_shared_default=yes
426 aros_shared_cflags="-fPIC"
427 aros_shared_aflags=""
428 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
429 aros_kernel_ldflags="-Wl,-rpath,./lib"
431 aros_target_ar_flags="cr"
432 aros_target_nm_flags="-C -ul"
433 aros_target_strip_flags="--strip-unneeded -R.comment"
435 aros_compiler_libs=
437 aros_target_genmap="-Wl,-Map -Xlinker"
439 # Native flavour stuff
440 aros_bochs_hack="0"
441 aros_serial_debug="0"
443 # Palm native flavour stuff
444 aros_palm_debug_hack="0"
446 # Unix flavour stuff
447 aros_nesting_supervisor="0"
449 # Collect-aros stuff: "-ius" to ignore undefined symbols
450 ignore_undefined_symbols=""
452 #-----------------------------------------------------------------------------
455 # GCC 4.1+ has a stack protection feature that requires OS support. Ubuntu has
456 # it switched on by default, and we use the host compiler, so it compiles AROS
457 # code with this enabled resulting in link failures as we don't have support
458 # for it.
460 # We use two methods to disable it. For the host compiler (used to compile
461 # some hosted modules), we test to see if the compiler supports stack
462 # protection, and if it does we disable it in AROS_CONFIG_CFLAGS. This should
463 # work on all platforms.
465 # For the "cross" compiler we clear the "ssp_default" spec in config/specs.in
466 # (this is done unconditionally, as it should have no effect on compilers
467 # without the stack protection feature). This may be specific to the way that
468 # Ubuntu enables the feature, so may not work everywhere. My specs-fu isn't
469 # strong enough to disable it in a generic way though, so we'll live with it
470 # until another vendor ships GCC with it enabled in a different way, and deal
471 # with it then.
474 AC_MSG_CHECKING([whether ${CC} accepts -fno-stack-protector])
475 save_cflags="$CFLAGS"
476 CFLAGS="$CFLAGS -fno-stack-protector"
477 AC_TRY_COMPILE(,, use_no_stack_protector="yes", use_no_stack_protector="no")
478 AC_MSG_RESULT($use_no_stack_protector)
479 if test "x-$use_no_stack_protector" = "x-yes" ; then
480     aros_host_cflags="$aros_host_cflags -fno-stack-protector"
482 CFLAGS="$save_cflags"
485 #-----------------------------------------------------------------------------
487 # Disable pointer-signedness warnings if the compiler recognises the option
488 # (this only works for the host compiler at the moment)
490 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
491 save_cflags="$CFLAGS"
492 CFLAGS="$CFLAGS -Wno-pointer-sign"
493 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
494 AC_MSG_RESULT($use_no_sign_warning)
495 if test "x-$use_no_sign_warning" = "x-yes" ; then
496     aros_host_cflags="$aros_host_cflags -Wno-pointer-sign"
498 CFLAGS="$save_cflags"
500 #-----------------------------------------------------------------------------
502 AC_MSG_CHECKING([for type of build])
503 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")
505 if test "$build_type" = "nightly"; then
506     build_type_string="NIGHTLY"
507 elif test "$build_type" = "snapshot"; then
508     build_type_string="SNAPSHOT"
509 elif test "$build_type" = "milestone"; then
510     build_type_string="MILESTONE"
511 elif test "$build_type" = "release"; then
512     build_type_string="RELEASE"
513 else
514     build_type_string="PERSONAL"
515     build_type="personal"
518 aros_config_cflags="$aros_config_cflags -DAROS_BUILD_TYPE=AROS_BUILD_TYPE_$build_type_string"
520 AC_MSG_RESULT($build_type)
522 #-----------------------------------------------------------------------------
523 all_debug_types="messages stack mungwall modules symbols"
525 AC_MSG_CHECKING([which debug types to enable])
526 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)]),
527  debug="$enableval",debug="")
529 if test "$debug" = "" -o "$debug" = "no"; then
530     debug="none"
531 elif test "$debug" = "yes"; then
532     debug="all"
535 if test "$debug" = "all" ; then
536     debug=$all_debug_types
537     for d in $all_debug_types; do
538         export aros_${d}_debug="1"
539     done
540 else
541     for d in $all_debug_types; do
542         export aros_${d}_debug="0"
543     done
546 if test "$debug" != "none"; then
547     debug=`echo $debug | sed s/,/\ /g`
548     for d in $debug; do
549         found="0"
550         for d2 in $all_debug_types; do
551             if test "$d2" = "$d"; then
552                 found="1"
553                 break
554             fi
555         done
556         if test "$found" = "0"; then
557             AC_MSG_ERROR([unrecognized debug type "$d". Available types are: all none $all_debug_types])
558         fi
559         export aros_${d}_debug="1"
560     done
561     aros_debug="yes"
563 AC_MSG_RESULT($debug)
565 if test "$aros_messages_debug" = "1"; then
566     aros_messages_debug="-DADEBUG=1 -DMDEBUG=1"
567 else
568     aros_messages_debug=""
570 if test "$aros_symbols_debug" = "1"; then
571     aros_symbols_debug="-g"
572 else
573     aros_symbols_debug=""
576 # These are the flags to pass when compiling debugged programs
577 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
578 aros_debug_aflags=""
579 aros_debug_ldflags="$aros_symbols_debug"
581 aros_crosstools="no"
583 #-----------------------------------------------------------------------------
584 #   Checking if we should build crosstools..
585 AC_MSG_CHECKING([whether to build crosstools])
586 AC_ARG_ENABLE(crosstools,AC_HELP_STRING([--enable-crosstools],[Build cross-compiler toolchains if necessary (default=no).]),crosstools="$enableval",crosstools="no")
587 if test "$crosstools" != "" -a "$crosstools" != "no"; then
588     AC_MSG_RESULT(yes)
589         aros_crosstools="yes"
590 else
591     AC_MSG_RESULT(no)
594 #-----------------------------------------------------------------------------
595 #   Checking for distcc and ccache.
597 #   Always apply the transforms in this particular order. Basically you should
598 #   always run 'ccache distcc compiler' in that order for the best performance.
600 AC_MSG_CHECKING([whether to enable distcc])
601 AC_ARG_ENABLE(distcc,AC_HELP_STRING([--enable-distcc],[Use distcc as a front end to the compiler (default=no).]),distcc="$enableval",distcc="no")
602 if test "$distcc" != "" -a "$distcc" != "no"; then
603     # AC_CHECK_PROG will print out the result in this case
604     AC_PATH_PROG(DISTCC,[distcc],distcc,)
605 else
606     AC_MSG_RESULT(no)
609 AC_MSG_CHECKING([whether to enable ccache])
610 AC_ARG_ENABLE(ccache,AC_HELP_STRING([--enable-ccache],[Use ccache as a front end to the compiler (default=no).]),ccache="$enableval",ccache="no")
611 if test "$ccache" != "" -a "$ccache" != "no"; then
612     # AC_CHECK_PROG will print out the result in this case
613     AC_CHECK_PROG(CCACHE,[ccache],ccache,)
614 else
615     AC_MSG_RESULT(no)
618 #-----------------------------------------------------------------------------
619 AC_MSG_CHECKING([what optimization flags to use])
620 AC_ARG_WITH(optimization,AC_HELP_STRING([--with-optimization=FLAGS],[Use optimization flags FLAGS (default=-O2).]),optimization="$withval",optimization="unknown")
621 if test "$optimization" = "unknown"; then
622     dnl default is -O2 for normal builds, -O0 for debug builds
623     if test "$debug" != "none"; then
624         optimization="-O0"
625     else
626         optimization="-O2"
627     fi
629 aros_config_cflags="$aros_config_cflags $optimization"
630 AC_MSG_RESULT($optimization)
632 #-----------------------------------------------------------------------------
633 AC_MSG_CHECKING([what target variant to enable])
634 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")
635 if test "$target_variant" = "none"; then
636     aros_target_variant=""
637     aros_target_suffix=""
638 else
639     aros_target_variant="$target_variant"
640     aros_target_suffix="-$target_variant"
642 AC_MSG_RESULT($enableval)
644 target_bootloader="none"
646 #-----------------------------------------------------------------------------
647 # This is the target configuration switch.
648 case "$target_os" in
649     linux*)
650         aros_target_arch="linux"
651         case "$target_cpu" in
652             *m68k*)
653                 aros_target_cpu="m68k"
654                 aros_object_format="m68kelf"
655                 aros_flavour="emulcompat"
656                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__linux__"
657                 aros_shared_ldflags="-Wl,-T,\$(TOP)/config/linux/m68k/script.so"
658                 aros_kernel_ldflags="-Wl,-rpath,./lib,-T,\$(TOP)/config/linux/m68k/script.normal"
659                 gcc_target_cpu="mc68000"
660                 ;;
661             *i?86*)
662                 aros_target_cpu="i386"
663                 aros_object_format="elf_i386"
664                 aros_flavour="emulation"
665                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__linux__"
666                 aros_default_wbdepth=8
667                 gcc_target_cpu="i386"
668                 ;;
669             *x86_64*)
670                 aros_target_cpu="x86_64"
671                 aros_object_format="elf_x86_64"
672                 aros_flavour="emulation"
673                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__linux__"
674                 aros_config_cflags="$aros_config_cflags -mno-red-zone"
675                 aros_default_wbdepth=8
676                 gcc_target_cpu="x86_64"
677                 ;;
678             *powerpc*)
679                 aros_target_cpu="ppc"
680                 aros_object_format="elf32ppc"
681                 aros_flavour="emulation"
682                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
683                 aros_default_wbdepth=8
684                 gcc_target_cpu="ppc"
685                 ;;
686 # TODO
687 # Same as powerpc, but I need this for the nightly build to work again.
688 # Actually, the nightly should be made working with powerpc target.
689 # That just was too much work for the moment, another week or two.
690             *ppc*)
691                 aros_target_cpu="ppc"
692                 aros_object_format="elf32ppc"
693                 aros_flavour="emulation"
694                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
695                 aros_default_wbdepth=8
696                 gcc_target_cpu="ppc"
697                 ;;
698             *)
699                 AC_MSG_ERROR("Unknown CPU for Linux -- $target_cpu")
700                 ;;
701         esac
702     ;;
704     pc)
705         aros_target_arch="pc"
706         aros_shared_default="no"
707         target_bootloader="grub2"
708         case "$target_cpu" in
709             *i?86*)
710                 aros_target_cpu="i386"
712                 dnl If somebody hasn't already set the target object
713                 dnl format, then use this value. Mostly to support
714                 dnl FreeBSD cross-compilation.
715                 dnl TODO: Remove when we always use our compiler.
717                 if test "$aros_object_format" = "" ; then
718                     aros_object_format="elf_i386"
719                 fi
720                 aros_flavour="standalone"
721                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
722                 aros_kernel_ldflags=""
723                 aros_default_wbwidth=640
724                 aros_default_wbheight=480
725                 gcc_target_cpu="i386"
726                 ;;
727             *x86_64*)
728                 aros_target_cpu="x86_64"
729                 aros_serial_debug=1
730                 if test "$aros_object_format" = "" ; then
731                     aros_object_format="elf_x86_64"
732                 fi
733                 aros_flavour="standalone"
734                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
735                 aros_config_cflags="$aros_config_cflags -fno-asynchronous-unwind-tables -mno-red-zone"
736                 aros_kernel_ldflags=""
737                 aros_default_wbwidth=640
738                 aros_default_wbheight=480
739                 gcc_target_cpu="x86_64"
740                 ;;
741             *)
742                 AC_MSG_ERROR("Unknown native CPU -- $target_cpu")
743                 ;;
744         esac
745         ;;
747     prep)
748         aros_target_arch="prep"
749         aros_shared_default="no"
750         aros_target_cpu="ppc"
751         aros_object_format="elf32ppc"
752         aros_flavour="ppcnative"
753         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
754         aros_kernel_ldflags=""
755         aros_default_wbwidth=640
756         aros_default_wbheight=480
757         gcc_target_cpu="ppc"
758         ;;
760     freebsd*)
761         aros_target_arch="freebsd"
762         aros_target_cpu="i386"
763         aros_flavour="emulation"
764         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
765         gcc_target_cpu="i386"
767         aros_target_strip_flags="-x"
768         ;;
770     darwin*)
771         aros_target_arch="darwin"
772         aros_flavour="emulation"
773         dnl FIXME
774         dnl This test bypass was implemented for Darwin by port's author.
775         dnl I wonder why, since darwin port needs this function.
776         dnl I left it here just because port author did it.
777         need_dlopen="no"
778         case "$target_cpu" in
779                 *i?86*)
780                         aros_target_cpu="i386"
781                         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
782                         gcc_target_cpu="i386"
783                         aros_object_format="elf_i386"
784                         aros_target_strip_flags="-x"
785                         ;;
786                 *)
787                         AC_MSG_ERROR("Unsupported target CPU for darwin hosted flavour -- $target_cpu")
788                         ;;
789         esac
790         ;;
791     netbsd*)
792         aros_target_arch="netbsd"
793         case "$target_cpu" in
794             *m68k*)
795                 aros_target_cpu="m68k"
796                 aros_object_format="m68kelf"
797                 aros_flavour="emulcompat"
798                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
799                 gcc_target_cpu="mc68000"
800                 ;;
801             *i?86*)
802                 aros_target_cpu="i386"
803                 aros_object_format="elf_i386"
804                 aros_flavour="emulation"
805                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
806                 aros_default_wbdepth=8
807                 gcc_target_cpu="i386"
808                 ;;
809             *)
810                 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
811                 ;;
812         esac
813         aros_target_genmap="-Wl,-M -Xlinker >"
814         aros_flavour="emulation"
815         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
816         ;;   
818     openbsd*)
819         aros_target_arch="openbsd"
820         case "$target_cpu" in
821             *i?86*)
822                 aros_target_cpu="i386"
823                 aros_object_format="elf_i386"
824                 aros_flavour="emulation"
825                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
826                 gcc_target_cpu="i386"
827                 ;;
828             *)
829                 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
830                 ;;
831         esac
832         aros_target_genmap="-Wl,-M -Xlinker >"
833         aros_target_nm_flags="-u"
834         aros_flavour="emulation"
835         ;;
837     solaris*)
838         aros_target_arch="solaris"
839         case "$target_cpu" in
840            *i?86*)
841                aros_target_cpu="i386"
842                aros_object_format="elf_i386"
843                aros_flavour="emulation"
844                aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__Solaris__"
845                aros_default_wbdepth=8
846                gcc_target_cpu="i386"
847                ;;
848             *sparc*)
849                 aros_target_cpu="sparc"
850                 aros_object_format="elf_sparc"
851                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
852                 gcc_target_cpu="sparc"
853                 ;;
854             *)
855                 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
856                 ;;
857         esac
858         aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
859         aros_flavour="emulation"
860         ;;
862     morphos*)
863         aros_target_arch="morphos"
864         aros_shared_default="no"
865         aros_target_cpu="ppc"
866         aros_object_format="elf_ppc"
867         aros_flavour="nativecompat"
868         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
869         gcc_target_cpu="ppc"
870         ;;
872     sam440)
873         aros_target_arch="sam440"
874         aros_shared_default="no"
875         aros_target_cpu="ppc"
876         aros_object_format="elf32ppc"
877         aros_flavour="ppcnative"
878         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
879         aros_kernel_ldflags=""
880         aros_default_wbwidth=640
881         aros_default_wbheight=480
882         aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
883         gcc_target_cpu="powerpc"
884         ;;
886     chrp)
887     aros_target_arch="chrp"
888     aros_shared_default="no"
889     aros_target_cpu="ppc"
890     aros_object_format="elf32ppc"
891     aros_flavour="ppcnative"
892     aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
893     aros_kernel_ldflags=""
894     aros_default_wbwidth=640
895     aros_default_wbheight=480
896     aros_config_cflags="$aros_config_cflags -mno-toc -fno-asynchronous-unwind-tables"    
897     gcc_target_cpu="powerpc"
898         case "$aros_target_variant" in
899             efika)
900             aros_config_cflags="$aros_config_cflags -DBIG_ENDIAN_OHCI=1 -mcpu=603e"
901             ;;
902         esac
903     ;;
905     amiga*)
906         aros_target_arch="amiga"
907         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
908         aros_shared_default="no"
910         aros_config_cflags="$aros_config_cflags -fomit-frame-pointer -fbuiltin -ffreestanding"
912         case "$target_cpu" in
913             *m68k*)
914                 aros_target_cpu="m68k"
915                 aros_object_format="m68kelf"
916                 aros_flavour="nativecompat"
917                 gcc_target_cpu="mc68000"
918                 ;;
919             *ppc*)
920                 aros_cpu="ppc"
921                 aros_flavour="native"
922                 gcc_target_cpu="ppc"
923                 ;;
924             *)
925                 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
926                 ;;
927         esac
928         ;;
930     cygwin*)
931         aros_target_arch="cygwin"
932         aros_shared_default="no"
933         case "$target_cpu" in
934             *i?86*)
935                 aros_target_cpu="i386"
936                 aros_object_format="elf_i386"
937                 aros_flavour="emulation"
938                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__CYGWIN32__"
939                 aros_shared_cflags=""
940                 aros_default_wbdepth=8
941                 gcc_target_cpu="i386"
942                 aros_target_cc="i386-aros-gcc"
943                 aros_target_ld="i386-aros-ld"
944                 aros_target_as="i386-aros-as"
945                 aros_target_ar="i386-aros-ar"
946                 aros_target_ranlib="i386-aros-ranlib"
947                 aros_target_nm="i386-aros-nm"
948                 aros_target_strip="i386-aros-strip"
949                 aros_target_objcopy="i386-aros-objcopy"
950                 aros_target_objdump="i386-aros-objdump"
951                 ;;
952             *)
953                 AC_MSG_ERROR("Unknown CPU for CygWin -- $target_cpu")
954                 ;;
955         esac
956     ;;
958     mingw32*)
959         aros_target_arch="mingw32"
960         aros_shared_default="no"
961         need_dlopen="no"
962         rescomp="windres"
963         case "$target_cpu" in
964             *i?86*)
965                 aros_target_cpu="i386"
966                 aros_object_format="elf_i386"
967                 aros_flavour="emulation"
968                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
969                 aros_shared_cflags=""
970                 aros_default_wbdepth=8
971                 gcc_target_cpu="i386"
972                 aros_target_cc="i386-aros-gcc"
973                 aros_target_ld="i386-aros-ld"
974                 aros_target_as="i386-aros-as"
975                 aros_target_ar="i386-aros-ar"
976                 aros_target_ranlib="i386-aros-ranlib"
977                 aros_target_nm="i386-aros-nm"
978                 aros_target_strip="i386-aros-strip"
979                 aros_target_objcopy="i386-aros-objcopy"
980                 aros_target_objdump="i386-aros-objdump"
981                 target_tool_prefix="i386-mingw32-"
982                 ;;
983             *)
984                 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
985                 ;;
986         esac
987         if test $host_os = "cygwin"; then
988                 aros_kernel_cflags="-mno-cygwin"
989         fi
990     ;;
991     pp*)
992         aros_target_arch="pp"
993         aros_shared_default="no"
994         case "$target_cpu" in
995             *m68k*)
996                 aros_target_cpu="m68k"
997                 aros_object_format="m68kelf"
998                 aros_flavour="palmnative"
999                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1000                 aros_kernel_ldflags=""
1001                 aros_default_wbwidth=160
1002                 aros_default_wbheight=160
1003                 aros_default_wbdepth=1
1004                 aros_target_ar_flags="cru"
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 -Wa,-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"
1018                 ;;
1019            *)
1020                 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
1021                 ;;
1022         esac
1023         ;;
1025     mac*)
1026         aros_target_arch="mac"
1027         aros_shared_default="no"
1028         case "$target_cpu" in
1029             *m68k*)
1030                 aros_target_cpu="m68k"
1031                 aros_object_format="m68kelf"
1032                 aros_flavour="mac68knative"
1033                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1034                 aros_default_wbwidth=512
1035                 aros_default_wbheight=384
1036                 aros_default_wbdepth=8
1037                 aros_target_ar_flags="cru"
1038                 aros_compiler_libs="-lgcc1"
1039                 aros_shared_default=no
1040                 aros_shared_cflags="-fpic"
1041                 aros_shared_aflags=""
1042                 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1043                 aros_kernel_ldflags="-Wl,-rpath,./lib"
1044                 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug  $aros_messages_debug -mc68000"
1045                 aros_debug_aflags=""
1046                 aros_debug_ldflags="$aros_symbols_debug"
1047                 aros_mungwall_debug="0"
1048                 aros_modules_debug="0"
1049                 gcc_target_cpu="mc68000"
1050                 ignore_undefined_symbols="-ius"
1051                 ;;
1052            *)
1053                 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
1054                 ;;
1055         esac
1056         ;;
1058     *)
1059         AC_MSG_ERROR([Unsupported target architecture $target])
1060         ;;
1061 esac
1063 AC_MSG_CHECKING([Where to download sourcecode for external ports])
1064 AC_ARG_WITH(portssources,AC_HELP_STRING([--with-portssources=DIR],[Where to download sourcecode for external ports]),with_portssrcdir=$withval,with_portssrcdir="default")
1065 if test "$with_portssrcdir" = "default"; then
1066     AROS_PORTSSRCDIR="$AROS_BUILDDIR/bin/Sources"
1067 else
1068     AROS_PORTSSRCDIR="$with_portssrcdir"
1070 AC_MSG_RESULT($AROS_PORTSSRCDIR)
1072 AC_MSG_CHECKING([which bootloader to use])
1073 AC_ARG_WITH(bootloader,AC_HELP_STRING([--with-bootloader=NAME],[Use a specific bootloader]),target_bootloader=$withval,target_bootloader=$target_bootloader)
1074 if test "$target_bootloader" = "none"; then
1075     aros_target_bootloader=""
1076 else
1077     aros_target_bootloader="$target_bootloader"
1079 AC_MSG_RESULT($target_bootloader)
1081 # Check LZO when compiling the grub2 bootloader on i386/x86_64.
1082 aros_liblzo_check="no"
1083 case "$aros_target_bootloader" in
1084     grub2*)
1085     case "$target_cpu" in
1086         *i?86*)
1087         aros_liblzo_check="yes"
1088         ;;
1089         *x86_64*)
1090         aros_liblzo_check="yes"  
1091         ;;
1092         *)
1093         ;;
1094     esac
1095   
1096     ;;
1097    *)
1098     ;;
1099 esac
1101 if test "$aros_liblzo_check" = "yes"; then
1102     # There are three possibilities. LZO version 2 installed with the name
1103     # liblzo2, with the name liblzo, and LZO version 1.  
1104     AC_CHECK_LIB(lzo2, __lzo_init_v2, [LIBLZO="-llzo2"],  
1105     AC_CHECK_LIB(lzo, __lzo_init_v2, [LIBLZO="-llzo"],
1106                 AC_CHECK_LIB(lzo, __lzo_init2, [LIBLZO="-llzo"],
1107                 AC_MSG_ERROR([LZO library version 1.02 or later is required]))))
1109     AC_SUBST(LIBLZO)
1110     LIBS="$LIBS $LIBLZO"
1111     AC_CHECK_FUNC(lzo1x_999_compress, ,
1112                 [AC_MSG_ERROR([LZO1X-999 must be enabled])])
1114     # LZO version 2 uses lzo/lzo1x.h, while LZO version 1 uses lzo1x.h.
1115     AC_CHECK_HEADERS(lzo/lzo1x.h lzo1x.h)
1118 AC_MSG_CHECKING([which GUI Theme to use])
1119 AC_ARG_WITH(theme,AC_HELP_STRING([--with-theme=NAME],[Use a specific GUI Theme]),target_guitheme=$withval,target_guitheme="default")
1120 if test "$target_guitheme" = "default"; then
1121     aros_target_guitheme="Ice"
1122 else
1123     aros_target_guitheme="$target_guitheme"
1125 AC_MSG_RESULT($aros_target_guitheme)
1127 # Find out if we are cross-compiling (ie. if we can't use the host compiler
1128 # for target code)
1129 cross_compiling=no
1130 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
1131     cross_compiling=yes
1133 if test "$aros_host_arch" == "darwin" ; then
1134     cross_compiling=yes
1137 # Set prefix for target compiler etc. if we're cross-compiling
1138 # (should possibly be earlier but needs to be after AC_PROG_CC)
1139 if test "$cross_compiling" = "yes" ; then
1140     if test "$target_tool_prefix" = ""; then
1141         target_tool_prefix=${target_cpu}-elf-
1142     fi
1143     CC=${target_tool_prefix}gcc
1146 #-----------------------------------------------------------------------------
1148 # Disable pointer-signedness warnings if the compiler recognises the option
1150 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
1151 save_cflags="$CFLAGS"
1152 CFLAGS="$CFLAGS -Wno-pointer-sign"
1153 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
1154 AC_MSG_RESULT($use_no_sign_warning)
1155 if test "x-$use_no_sign_warning" = "x-yes" ; then
1156     aros_config_cflags="$aros_config_cflags -Wno-pointer-sign"
1158 CFLAGS="$save_cflags"
1160 #-----------------------------------------------------------------------------
1162 # Find all the tools we need to compile. This could be cross-compiling
1163 # though! If that is the case we use the GNU form of the target and
1164 # simply add this to the front of the binary name. This is rather simple,
1165 # but it should work under most circumstances.
1167 # The default tools are to use the same as the host, but only if the
1168 # host and target CPU are the same. With GCC this is normally enough.
1171 aros_cc_pre=""
1172 aros_shared_ld="$aros_host_ld"
1174 aros_target_mkdep="$aros_host_mkdep"
1175 aros_target_incl_def="$aros_host_incl"
1177 AC_PATH_PROG(aros_kernel_cc,$CC)
1179 # The default tools executables to be linked to.
1180 if test "$aros_target_cc" != ""; then
1181     AC_PATH_PROG(aros_target_cc,$aros_target_cc)
1182     AROS_REQUIRED(gcc,$aros_target_cc)
1184 if test "$aros_target_ld" != ""; then
1185     AC_PATH_PROG(aros_target_ld,$aros_target_ld)
1186     AROS_REQUIRED(ld,$aros_target_ld)
1189 if test "$crosstools" != "yes"; then
1190     AROS_TOOL_TARGET(aros_target_as_ln,as,$aros_target_as)
1191     AROS_REQUIRED(as,$aros_target_as_ln)
1192     AROS_TOOL_TARGET(aros_kernel_ld,ld,$aros_kernel_ld)
1193     AROS_REQUIRED(ld,$aros_kernel_ld)
1194     AROS_TOOL_TARGET(aros_target_ar_ln,ar,$aros_target_ar)
1195     AROS_REQUIRED(ar,$aros_target_ar_ln)
1196     AROS_TOOL_TARGET(aros_target_nm_ln,nm,$aros_target_nm)
1197     AROS_REQUIRED(nm,$aros_target_nm_ln)
1198     AROS_TOOL_TARGET(aros_target_objcopy_ln,objcopy,$aros_target_objcopy)
1199     AROS_REQUIRED(objcopy,$aros_target_objcopy_ln)
1200     AROS_TOOL_TARGET(aros_target_objdump_ln,objdump,$aros_target_objdump)
1201     AROS_REQUIRED(objdump,$aros_target_objdump_ln)
1202     AROS_TOOL_TARGET(aros_target_ranlib_ln,ranlib,$aros_target_ranlib)
1203     AROS_REQUIRED(ranlib,$aros_target_ranlib_ln)
1204     AROS_TOOL_TARGET(aros_target_strip_ln,strip,$aros_target_strip)
1205     AROS_REQUIRED(strip,$aros_target_strip_ln)
1208 if test "$rescomp" != ""; then
1209     if test "$cross_compiling" = "yes" ; then
1210         rescomp=${target_tool_prefix}${rescomp}
1211     fi
1212     AC_PATH_PROG(aros_kernel_rescomp,$rescomp)
1213     AROS_REQUIRED($rescomp,$aros_kernel_rescomp)
1216 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/config"
1217 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
1218 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
1219 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
1220 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
1221 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
1222 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
1224 # aros_cc_pre is a variable that is added to the front of the compiler name
1225 # in the generated aros-gcc shell script. We need this to enable the cache
1226 # to work across cleaned builds. Also, support DISTCC using the correct
1227 # environment variable.
1230 if test "x${DISTCC}" != "x" ; then
1231     if test "x${CCACHE}" != "x" ; then
1232         aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
1233     else
1234         aros_cc_pre="${DISTCC} "
1235     fi
1236 else
1237     if test "x${CCACHE}" != "x" ; then
1238         aros_cc_pre="${CCACHE} "
1239     fi
1242 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros"
1244 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
1245 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
1246 AC_SUBST(aros_target_nix_ldflags,-nix)
1247 AC_SUBST(aros_target_detach_ldflags,-detach)
1248 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
1250 # Target tools
1251 if test "$aros_target_cc" = ""; then
1252     orig_target_cc=$aros_kernel_cc
1253 else
1254     orig_target_cc=$aros_target_cc
1256 if test "$aros_target_ld" = ""; then
1257     orig_target_ld=$aros_kernel_ld
1258 else
1259     orig_target_ld=$aros_target_ld
1261 if test "$GCC" = "yes"; then
1262     aros_target_cc_path=`$orig_target_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
1264 aros_target_cc="${prefix}-gcc"
1265 aros_target_as="${prefix}-as"
1266 aros_target_ld="${prefix}-ld"
1267 aros_target_ar="${prefix}-ar $aros_target_ar_flags"
1268 aros_target_objcopy=${prefix}-objcopy
1269 aros_target_objdump=${prefix}-objdump
1270 aros_target_ranlib="${prefix}-ranlib $aros_target_ranlib_flags"
1271 aros_target_nm="${prefix}-nm $aros_target_nm_flags"
1272 aros_kernel_nm="${prefix}-nm"
1273 aros_target_strip=${prefix}-strip
1275 # Find the system include path. We can suggest that an alternative is
1276 # used if we don't get it correct. The default is to use /usr/include.
1277 # Which is set in the aros_target_incl_def variable.
1279 AC_ARG_ENABLE(includes,
1280 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
1281 [aros_target_incl=$enable_includes], [aros_target_incl=$aros_target_incl_def])
1283 dnl find out about the target cc's include path
1284 AC_MSG_CHECKING([for the target compiler's include path])
1285 if test "$aros_target_cc_includes" = "" ; then
1286     #try to guess where the directory is
1287     aros_target_cc_includes=`dirname \`${orig_target_cc} -print-libgcc-file-name\``/include
1288     if ! test -d $aros_target_cc_includes; then
1289         #the directory doesn't exist, we need to do some more work
1290         aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
1291         
1292         #these are the headers we're looling for
1293         headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
1294                  stddef.h xmmintrin.h iso646.h stdarg.h unwind.h   \
1295                  zutil.h"
1297         dirs=
1298         for h in $headers; do
1299             #which other headers each of the above headers needs?
1300             deps=$(echo "#include <$h>" | \
1301                    $aros_host_cc -E -M - 2>/dev/null | \
1302                    sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
1303             
1304             #copy all the needed headers to a directory beneath gendir
1305             for d in $deps; do
1306                 h=$(basename $d)
1307                 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
1308                                                 sed -n "s,^.*/include\(/.*\),\1,p")
1309                 ! test -d $dir && mkdir -p $dir
1310                 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
1311             done
1312         done        
1313     fi
1315 AC_MSG_RESULT($aros_target_cc_includes)
1318 # For GCC < 4.0 -I- is used for giving the search path for '#include "..."'
1319 # On GCC >= 4.0 -iquote should be used
1322 save_cc="$CC"
1323 save_cflags="$CFLAGS"
1324 CC="$aros_kernel_cc"
1325 CFLAGS="-iquote."
1326 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
1327 AC_TRY_COMPILE(,, has_iquote="yes", has_iquote="no")
1328 AC_MSG_RESULT($has_iquote)
1329 if test "x-$has_iquote" = "x-yes" ; then
1330     aros_cflags_iquote=-iquote
1331     aros_cflags_iquote_end=
1332 else
1333     aros_cflags_iquote=-I
1334     aros_cflags_iquote_end=-I-
1336 CC="$save_cc"
1337 CFLAGS="$save_cflags"
1339 AC_SUBST(aros_cflags_iquote)
1340 AC_SUBST(aros_cflags_iquote_end)
1343 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
1344 AC_MSG_CHECKING([for default resolution of WBScreen])
1345 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
1346 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
1347 if test "$resolution" = "yes" ; then
1348     resolution="none"
1350 if test "$resolution" = "no" ; then
1351     resolution="none"
1353 if test "$resolution" != "none" ; then
1354     aros_default_wbwidth=`echo $resolution | cut -d'x' -f1`
1355     aros_default_wbheight=`echo $resolution | cut -d'x' -f2`
1356     aros_default_wbdepth=`echo $resolution | cut -d'x' -f3`
1358 AC_MSG_RESULT($aros_default_wbwidth x $aros_default_wbheight x $aros_default_wbdepth)
1359 aros_cv_default_wbwidth=$aros_default_wbwidth
1360 aros_cv_default_wbheight=$aros_default_wbheight
1361 aros_cv_default_wbdepth=$aros_default_wbdepth
1363 dnl See if the user wants the BOCHS hack for native flavour
1364 AC_MSG_CHECKING([if bochs hack is enabled])
1365 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")
1366 if test "$bochs_hack" = "yes" ; then
1367     aros_bochs_hack="1"
1369 AC_MSG_RESULT($bochs_hack)
1371 dnl See if the user wants the serial debug output for native flavour
1372 AC_MSG_CHECKING([if serial debug is enabled])
1373 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)
1374 if test "$aros_serial_debug" = 0 ; then
1375     serial_debug_forced=""
1376     if test "$serial_debug" = "yes" ; then
1377         serial_debug="2"
1378     fi
1379     if test "$serial_debug" = "no" ; then
1380         serial_debug="none"
1381     fi
1382 else
1383     serial_debug_forced="(forced)"
1384     serial_debug=$aros_serial_debug
1386 if test "$serial_debug" != "none" ; then
1387     aros_serial_debug=$serial_debug
1388     AC_MSG_RESULT($serial_debug_forced on port $serial_debug)
1389 else
1390     AC_MSG_RESULT(no)
1393 dnl See if the user wants the palm debug output hack for palm native flavour
1394 AC_MSG_CHECKING([if palm debug hack is enabled])
1395 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")
1396 if test "$palm_debug_hack" = "yes" ; then
1397     aros_palm_debug_hack="1"
1399 AC_MSG_RESULT($palm_debug_hack)
1402 dnl See if the user wants nesting supervisor activated for unix flavour
1403 AC_MSG_CHECKING([if nesting supervisor support is enabled])
1404 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")
1405 if test "$nesting_supervisor" = "yes" ; then
1406     aros_nesting_supervisor="1"
1408 AC_MSG_RESULT($nesting_supervisor)
1411 dnl things specifically required for hosted flavours
1412 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1414     if test "x-$need_dlopen" != "x-no" ; then
1415       dnl some kind of dynamic library access system is required for hostlib.resource
1416       AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
1417       if test "x-$have_dl" = "x-no" ; then
1418           AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
1419                                     aros_host_ldflags="$aros_host_ldflags -ldl"],
1420                                     have_dl="no")
1421       fi
1422       if test "x-$have_dl" = "x-no" ; then
1423           AC_MSG_ERROR([dlopen() dynamic linker functions not available])
1424       fi
1425     fi
1428     dnl x11 hidd
1429     AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
1430                                            [build X11 hidd for hosted (default=auto)]),
1431                                            x11_hidd="$enableval",
1432                                            x11_hidd="auto")
1433     case "x-$x11_hidd" in
1434         x-yes|x-no|x-auto)                 ;;
1435         *)                 x11_hidd="auto" ;;
1436     esac
1438     dnl they want it
1439     if test "x-$x11_hidd" != "x-no" ; then
1441         dnl find x11 stuff
1442         AC_PATH_X
1444         x_cflags=
1445         for path in $x_libraries
1446         do
1447             x_cflags="$x_cflags -L$path"
1448         done
1450         for path in $x_includes
1451         do
1452             x_cflags="$x_cflags -I$path"
1453         done
1454         
1455         if test "x-$no_x" = "x-yes" ; then
1457             dnl didn't find it
1458             if test "x-$x11_hidd" != "x-auto" ; then
1459                 dnl and they explicitly asked for it, bail out
1460                 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
1461             fi
1462             ENABLE_X11=0
1463         
1464         else
1465             dnl found it, setup the metatarget
1466             x11_hidd_target=kernel-x11gfx-kobj
1467             ENABLE_X11=1
1469             dnl setup shared memory extensions
1470             AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
1471                                                   [use X11 shared memory (default=auto)]),
1472                                                   x11_hidd_shm="$enableval",
1473                                                   x11_hidd_shm="auto")
1474             case "x-$x11_hidd_shm" in
1475                 x-yes|x-no|x-auto)                     ;;
1476                 *)                 x11_hidd_shm="auto" ;;
1477             esac
1479             have_xshm=no
1481             dnl they want it
1482             if test "x-$x11_hidd_shm" != "x-no" ; then
1484                 dnl system shm headers
1485                 AC_CHECK_HEADERS(sys/ipc.h)
1486                 AC_CHECK_HEADERS(sys/shm.h)
1488                 dnl got them
1489                 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
1491                     dnl make sure X libs have shm functions
1492                     save_cflags="$CFLAGS"
1493                     CFLAGS="$CFLAGS $x_cflags"
1494                     AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
1495                     CFLAGS="$save_cflags"
1496                 fi
1497             fi
1499             dnl detection done, prepare output
1500             if test "x-$have_xshm" = "x-yes" ; then
1501                 dnl we can do shm
1502                 DO_XSHM_SUPPORT="1"
1503             elif test "x-$x11_hidd_shm" = "x-yes" ; then
1504                 dnl they explicitly asked for it, but we can't do it
1505                 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
1506             else
1507                 dnl otherwise just disable it
1508                 DO_XSHM_SUPPORT="0"
1509             fi
1511             
1512             dnl setup vidmode (fullscreen) extensions
1513             AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
1514                                                       [use X11 vidmode extension (default=auto)]),
1515                                                       x11_hidd_vidmode="$enableval",
1516                                                       x11_hidd_vidmode="auto")
1517             case "x-$x11_hidd_vidmode" in
1518                 x-yes|x-no|x-auto)                         ;;
1519                 *)                 x11_hidd_vidmode="auto" ;;
1520             esac
1522             have_vidmode=no
1524             dnl they want it
1525             if test "x-$x11_hidd_vidmode" != "x-no" ; then
1527                 dnl make sure X libs have vidmode functions
1528                 save_cflags="$CFLAGS"
1529                 CFLAGS="$CFLAGS $x_cflags"
1530                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
1531                 CFLAGS="$save_cflags"
1532             fi
1534             dnl detection done, prepare output
1535             if test "x-$have_vidmode" = "x-yes" ; then
1536                 dnl we can do vidmode
1537                 DO_VIDMODE_SUPPORT="1"
1538             elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
1539                 dnl they explicitly asked for it, but we can't do it
1540                 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
1541             else
1542                 dnl otherwise just disable it
1543                 DO_VIDMODE_SUPPORT="0"
1544             fi
1545         fi
1547         aros_host_x11_includes=$x_includes 
1548         aros_host_x11_libdirs=$x_libraries
1549     fi
1552     dnl sdl hidd
1553     AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
1554                                            [build SDL hidd for hosted (default=auto)]),
1555                                            sdl_hidd="$enableval",
1556                                            sdl_hidd="auto")
1557     case "x-$sdl_hidd" in
1558         x-yes|x-no|x-auto)                 ;;
1559         *)                 sdl_hidd="auto" ;;
1560     esac
1562     dnl they want it
1563     if test "x-$sdl_hidd" != "x-no" ; then
1565         dnl find sdl
1566         AM_PATH_SDL([1.2.10], have_sdl="yes", have_sdl="no")
1568         if test "x-$have_sdl" != "x-yes" ; then
1570             dnl didn't find it
1571             if test "x-$sdl_hidd" != "x-auto" ; then
1572                 dnl and they explicitly asked for it, bail out
1573                 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
1574             fi
1576         else
1577             dnl found it, setup the metatarget
1578             sdl_hidd_target=kernel-hidd-sdl
1579             aros_host_sdl_cflags=SDL_CFLAGS
1580             aros_host_sdl_libs=SDL_LIBS
1581         fi
1582     fi
1587 dnl See if the user wants dbus.library
1588 AC_MSG_CHECKING([if building of dbus.library is enabled])
1589 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
1590 if test "$dbus" = "yes" ; then
1591     ENABLE_DBUS=1
1592     DBUS_CFLAGS=`pkg-config --cflags dbus-1`
1593     DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
1594     KERNEL_DBUS_KOBJ=kernel-dbus-kobj
1595     KERNEL_DBUS_INCLUDES=kernel-dbus-includes
1596 else
1597     ENABLE_DBUS=0
1599 AC_MSG_RESULT($dbus)
1602 dnl --------------------------------------------------------------------
1603 dnl Configuration Output Section
1604 dnl --------------------------------------------------------------------
1606 # Generic
1607 AC_SUBST(aros_arch)
1608 AC_SUBST(aros_cpu)
1609 AC_SUBST(aros_flavour)
1610 AC_SUBST(aros_flavour_uc)
1611 AC_SUBST(AROS_BUILDDIR)
1612 AC_SUBST(SRCDIR)
1613 AC_SUBST(AROS_PORTSSRCDIR)
1615 # Host related
1616 AC_SUBST(aros_cc_pre)
1617 AC_SUBST(aros_host_strip)
1618 AC_SUBST(aros_host_arch)
1619 AC_SUBST(aros_host_cpu)
1620 AC_SUBST(aros_host_cc)
1621 AC_SUBST(aros_host_ar)
1622 AC_SUBST(aros_host_ranlib)
1623 AC_SUBST(aros_host_ld)
1624 AC_SUBST(aros_host_make)
1625 AC_SUBST(aros_host_cflags)
1626 AC_SUBST(aros_host_ldflags)
1627 AC_SUBST(aros_host_debug)
1628 AC_SUBST(aros_host_mkdep)
1629 AC_SUBST(aros_host_mkargs)
1630 AC_SUBST(aros_host_exe_suffix)
1631 AC_SUBST(aros_host_lib_suffix)
1632 AC_SUBST(aros_tools_dir)
1633 AC_SUBST(aros_host_aclocal)
1634 AC_SUBST(aros_host_autoconf)
1635 AC_SUBST(aros_host_autoheader)
1636 AC_SUBST(aros_host_automake)
1638 # Target Related
1639 AC_SUBST(aros_target_guitheme)
1640 AC_SUBST(aros_target_bootloader)
1641 AC_SUBST(aros_target_arch)
1642 AC_SUBST(aros_target_cpu)
1643 AC_SUBST(aros_target_variant)
1644 AC_SUBST(aros_target_suffix)
1645 AC_SUBST(aros_target_incl)
1646 AC_SUBST(aros_target_ar)
1647 AC_SUBST(aros_target_ranlib)
1648 AC_SUBST(aros_kernel_nm)
1649 AC_SUBST(orig_target_cc)
1650 AC_SUBST(aros_target_cc)
1651 AC_SUBST(aros_kernel_cc)
1652 AC_SUBST(aros_target_as)
1653 AC_SUBST(orig_target_ld)
1654 AC_SUBST(aros_target_ld)
1655 AC_SUBST(aros_kernel_ld)
1656 AC_SUBST(aros_target_cc_includes)
1657 AC_SUBST(aros_target_cc_path)
1658 AC_SUBST(aros_target_objdump)
1659 AC_SUBST(aros_target_objcopy)
1660 AC_SUBST(aros_target_strip)
1661 AC_SUBST(aros_target_nm)
1662 AC_SUBST(aros_kernel_rescomp)
1663 AC_SUBST(aros_shared_default)
1664 AC_SUBST(aros_shared_ld)
1665 AC_SUBST(aros_object_format)
1666 AC_SUBST(aros_compiler_libs)
1668 AC_SUBST(aros_config_cflags)
1669 AC_SUBST(aros_config_aflags)
1670 AC_SUBST(aros_config_ldflags)
1672 AC_SUBST(aros_shared_cflags)
1673 AC_SUBST(aros_shared_aflags)
1674 AC_SUBST(aros_shared_ldflags)
1675 AC_SUBST(aros_kernel_cflags)
1676 AC_SUBST(aros_kernel_ldflags)
1677 AC_SUBST(aros_debug_cflags)
1678 AC_SUBST(aros_debug_aflags)
1679 AC_SUBST(aros_debug_ldflags)
1680 AC_SUBST(aros_target_genmap)
1681 AC_SUBST(aros_target_strip_flags)
1683 # Graphics Related
1684 AC_SUBST(x11_hidd_target)
1685 AC_SUBST(sdl_hidd_target)
1687 AC_SUBST(aros_default_wbwidth)
1688 AC_SUBST(aros_default_wbheight)
1689 AC_SUBST(aros_default_wbdepth)
1690 AC_SUBST(DO_XSHM_SUPPORT)
1691 AC_SUBST(DO_VIDMODE_SUPPORT)
1693 AC_SUBST(aros_host_x11_includes)
1694 AC_SUBST(aros_host_x11_libdirs)
1695 AC_SUBST(aros_host_sdl_cflags)
1696 AC_SUBST(aros_host_sdl_libs)
1698 # Native version related
1699 AC_SUBST(aros_bochs_hack)
1700 AC_SUBST(aros_serial_debug)
1702 # Palm native version related
1703 AC_SUBST(aros_palm_debug_hack)
1705 # Unix/Hosted version related
1706 AC_SUBST(aros_nesting_supervisor)
1708 # DBUS related
1709 AC_SUBST(ENABLE_DBUS)
1710 AC_SUBST(DBUS_CFLAGS)
1711 AC_SUBST(DBUS_LIBFLAGS)
1712 AC_SUBST(KERNEL_DBUS_KOBJ)
1713 AC_SUBST(KERNEL_DBUS_INCLUDES)
1715 #X11 related
1716 AC_SUBST(ENABLE_X11)
1718 # Debug related
1719 AC_SUBST(aros_debug)
1720 AC_SUBST(aros_mungwall_debug)
1721 AC_SUBST(aros_stack_debug)
1722 AC_SUBST(aros_modules_debug)
1724 # Collect-aros stuff: "-ius" to ignore undefined symbols
1725 AC_SUBST(ignore_undefined_symbols)
1727 # C compiler related
1728 AC_SUBST(gcc_target_cpu)
1730 dnl Prepare for output, make up all the generated patches
1731 case "$aros_flavour" in
1732 emulation)      aros_flavour_uc="AROS_FLAVOUR_EMULATION"
1733                 aros_flavour="emulation" ;;
1734 emulcompat)     aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
1735                 aros_flavour="emulation" ;;
1736 standalone)     aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
1737                 aros_flavour="standalone";;
1738 native)         aros_flavour_uc="AROS_FLAVOUR_NATIVE"
1739                 aros_flavour="native" ;;
1740 nativecompat)   aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
1741                 aros_flavour="native" ;;
1742 linklib)        aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
1743                 aros_flavour="linklib" ;;
1744 palmnative)     aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1745                 aros_flavour="palmnative" ;;
1746 mac68knative)   aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1747                 aros_flavour="mac68knative" ;;
1748 ppcnative)      aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
1749                 aros_flavour="ppcnative" ;;
1750 esac
1752 if test ! -d ${aros_inc_dir} ; then
1753     ${MKDIR} ${aros_inc_dir}
1755 if test ! -d ${aros_geninc_dir} ; then
1756     ${MKDIR} ${aros_geninc_dir}
1758 if test ! -d ${aros_hostcfg_dir} ; then
1759     ${MKDIR} ${aros_hostcfg_dir}
1761 if test ! -d ${aros_targetcfg_dir} ; then
1762     ${MKDIR} ${aros_targetcfg_dir}
1764 if test ! -d ${aros_tools_dir} ; then
1765     ${MKDIR} ${aros_tools_dir}
1767 if test ! -d ${aros_scripts_dir} ; then
1768     ${MKDIR} ${aros_scripts_dir}
1771 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
1773 AC_CONFIG_COMMANDS([compiler_executable],
1774     [
1775         prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
1776         mkdir -p $prefix
1777         prefix="${prefix}/${aros_target_cpu}-aros"
1778         prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
1780         echo ${prefix}
1781         echo ${prefix2}
1782         chmod a+x ${prefix2}-gcc ${prefix2}-ld
1784         ln -sf ${prefix2}-gcc          ${prefix}-gcc
1785         ln -sf ${prefix2}-ld           ${prefix}-ld
1787         ln -sf $aros_target_as_ln      ${prefix}-as
1788         ln -sf $aros_target_nm_ln      ${prefix}-nm
1789         ln -sf $aros_target_ar_ln      ${prefix}-ar
1790         ln -sf $aros_target_ranlib_ln  ${prefix}-ranlib
1791         ln -sf $aros_target_objcopy_ln ${prefix}-objcopy
1792         ln -sf $aros_target_objdump_ln ${prefix}-objdump
1793         ln -sf $aros_target_strip_ln   ${prefix}-strip
1795         ln -sf $aros_target_as_ln      ${prefix2}-as
1796         ln -sf $aros_target_nm_ln      ${prefix2}-nm
1797         ln -sf $aros_target_ar_ln      ${prefix2}-ar
1798         ln -sf $aros_target_ranlib_ln  ${prefix2}-ranlib
1799         ln -sf $aros_target_objcopy_ln ${prefix2}-objcopy
1800         ln -sf $aros_target_objdump_ln ${prefix2}-objdump
1801         ln -sf $aros_target_strip_ln   ${prefix2}-strip
1802     ],
1803     [
1804         aros_tools_dir=${aros_tools_dir}
1805         aros_target_cpu=${aros_target_cpu}
1806         aros_target_arch=${aros_target_arch}
1807         aros_target_suffix=${aros_target_suffix}
1808         aros_target_nm_ln=${aros_target_nm_ln}
1809         aros_target_as_ln=${aros_target_as_ln}
1810         aros_target_ar_ln=${aros_target_ar_ln}
1811         aros_target_ranlib_ln=${aros_target_ranlib_ln}
1812         aros_target_objdump_ln=${aros_target_objdump_ln}
1813         aros_target_objcopy_ln=${aros_target_objcopy_ln}
1814         aros_target_strip_ln=${aros_target_strip_ln}
1815     ]
1817 AC_CONFIG_COMMANDS([genshared_executable],
1818     [chmod a+x ${aros_scripts_dir}/genshared],
1819     [aros_scripts_dir=${aros_scripts_dir}]
1821 AC_CONFIG_COMMANDS([genmf_executable],
1822     [chmod a+x ${aros_tools_dir}/genmf.py],
1823     [aros_tools_dir=${aros_tools_dir}]
1825 AC_CONFIG_COMMANDS([adflib_myaros.conf_executable],
1826     [chmod a+x tools/adflib/myconf.aros]
1829 AC_CONFIG_FILES(
1830     Makefile
1831     config/make.cfg
1832     ${aros_inc_dir}/config.h:config/config.h.in
1833     ${aros_geninc_dir}/config.h:config/config.h.in
1834     ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
1835     ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
1836     mmake.config
1837     ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
1838     ${aros_targetcfg_dir}/specs:config/specs.in
1839     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-gcc:scripts/aros-gcc.in
1840     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
1841     ${aros_scripts_dir}/genshared:compiler/c_lib/source/lib_source/genshared.in
1842     ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
1843     tools/adflib/myconf.aros
1844     tools/collect-aros/env.h
1847 AC_OUTPUT
1849 dnl This is in order to not define SHARED_CFLAGS sometimes
1850 dnl We don't always do aros_shared_ar, aros_shared_cflags
1852 #XXX compatability...
1853 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
1855 if test -n "$aros_shared_cflags" ; then
1856     echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
1857     echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg