r8248@lvps87-230-33-50: verhaegs | 2008-05-21 23:34:37 +0200
[cake.git] / configure.in
blob64f68f8538e045472b792846acbd9057326e7e47
1 dnl Copyright © 1997-2006, 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 AROS_SRCDIR=${srcpwd}
54 AC_MSG_RESULT($AROS_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="\$(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
110     *gcc*)
111         aros_host_cc_pipe="-pipe"
112         ;;
113     icc)
114         aros_host_cc_pipe=""
115         ;;
116     *)
117         aros_host_cc_pipe=""
118         ;;
119 esac
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
127 # to that later.
129 case "$host_os" in
130     linux*)
131         aros_host_arch="linux"
132         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
133         case "$host_cpu" in
134             *i?86*)
135                 aros_host_cpu="i386"
136                 ;;
137             *x86_64*)
138                 aros_host_cpu="x86_64"
139                 ;;
140             *m68k*)
141                 aros_host_cpu="m68k"
142                 ;;
143             *powerpc*)
144                 aros_host_cpu="ppc"
145                 ;;
146             *)
147                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
148                 aros_host_cpu="$host_cpu"
149                 ;;
150         esac
151         ;;
153     freebsd*)
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"
157         aros_host_cpu="i386"
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.
167         case $host_os in
168             freebsd[[234]]*)
169                 aros_object_format="elf_i386"
170                 ;;
172             *)
173                 aros_object_format="elf_i386_fbsd"
174                 ;;
175         esac
177         ;;
179     darwin*)
180         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
181         aros_host_arch="darwin"
182         case "$host_cpu" in
183             *i?86*)
184                 aros_host_cpu="i386"
185                 ;;
186             *powerpc*)
187                 aros_host_cpu="ppc"
188                 ;;
189             *)
190                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
191                 aros_host_cpu="$host_cpu"
192                 ;;
193         esac
195         aros_host_ldflags="$aros_host_ldflags -liconv"
197         ;;
199     netbsd*)
200         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
201         aros_host_make="gmake"
202         aros_host_arch="netbsd"
203         case "$host_cpu" in
204             *i?86*)
205                 aros_host_cpu="i386"
206                 ;;
207             *m68k*)
208                 aros_host_cpu="m68k"
209                 ;;
210             *)
211                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
212                 aros_host_cpu="$host_cpu"
213                 ;;
214         esac    
215         aros_host_lib_suffix=".0.0"
216         ;;
218     openbsd*)
219         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
220         aros_host_make="gmake"
221         aros_host_arch="openbsd"
222         case "$host_cpu" in
223             *i?86*)
224                 aros_host_cpu="i386"
225                 ;;
226             *)
227                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
228                 aros_host_cpu="$host_cpu"
229                 ;;
230         esac
231         ;;
232         
233     solaris*)
234         aros_host_arch="solaris"
235         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
236         case "$host_cpu" in
237             *sparc*)
238                 aros_host_cpu="sparc"
239                 ;;
240             *)
241                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
242                 aros_host_cpu="$host_cpu"
243                 ;;
244         esac
245         ;;
247     morphos*)
248         aros_host_arch="morphos"
249         aros_host_cpu="ppc"
250         ;;
252     amiga*)
253         aros_host_arch="amiga"
254         SORT="/gg/bin/sort"
255         TEST="/gg/bin/test"
256         UNIQ="/gg/bin/uniq"
257         FOR="for"
258         TOUCH="/gg/bin/touch"
259         case "$host_cpu" in
260             *m68k*)
261                 aros_host_cpu="m68k"
262                 ;;
263             *powerpc*)
264                 aros_host_cpu="ppc"
265                 ;;
266             *)
267                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
268                 aros_host_cpu="$host_cpu"
269                 ;;
270         esac
271         ;;
273     cygwin*)
274         aros_host_arch="cygwin"
275         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
276         case "$host_cpu" in
277             *i?86*)
278                 aros_host_cpu="i386"
279                 ;;
280             *)
281                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
282                 aros_host_cpu="$host_cpu"
283                 ;;
284         esac
285         ;;
287     mingw32*)
288         aros_host_arch="mingw32"
289         aros_host_cc="$aros_host_cc $aros_host_cc_pipe"
290         case "$host_cpu" in
291             *i?86*)
292                 aros_host_cpu="i386"
293                 ;;
294             *)
295                 AC_MSG_WARN("Unknown CPU for host -- $host_cpu")
296                 aros_host_cpu="$host_cpu"
297                 ;;
298         esac
299         ;;
300     *)
301         AC_MSG_ERROR([Unsupported host architecture $host])
302         ;;
303 esac
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)
314 AROS_PROG(CP,[cp])
315 AROS_REQUIRED(cp,$CP)
316 AROS_PROG(MV,[mv])
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)
330 AROS_PROG(CAT,[cat])
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)
340 AROS_PROG(SED,[sed])
341 AROS_REQUIRED(sed,$SED)
342 AROS_PROG(CHMOD,[chmod])
343 AROS_REQUIRED(chmod,$CHMOD)
345 AM_PATH_PYTHON(2.2.1)
347 AC_SUBST(FOR, for)
348 AC_SUBST(IF, if)
349 AC_SUBST(TEST, test)
350 AC_SUBST(CMP, cmp)
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>])
364 AC_HEADER_DIRENT
365 AC_HEADER_STAT
366 AC_HEADER_STDC
367 AC_HEADER_SYS_WAIT
368 AC_HEADER_TIME
369 AC_STRUCT_ST_BLKSIZE
370 AC_STRUCT_ST_BLOCKS
371 AC_STRUCT_ST_RDEV
372 AC_STRUCT_TM
373 AC_STRUCT_TIMEZONE
374 AC_TYPE_OFF_T
375 AC_TYPE_PID_T
376 AC_TYPE_SIZE_T
377 AC_TYPE_UID_T
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])
386 AC_FUNC_MMAP
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"
412 aros_compiler_libs=
414 aros_target_genmap="-Wl,-Map -Xlinker"
416 # Native flavour stuff
417 aros_bochs_hack="0"
418 aros_serial_debug="0"
420 # Palm native flavour stuff
421 aros_palm_debug_hack="0"
423 # Unix flavour stuff
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
435 # for it.
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
448 # with it then.
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"
463 # For GCC < 4.0 -I- is used for giving the search path for '#include "..."'
464 # On GCC >= 4.0 -iquote should be used
467 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
468 save_cflags="$CFLAGS"
469 CFLAGS="$CFLAGS -iquote."
470 AC_TRY_COMPILE(,, has_iquote="yes", has-iquote="no")
471 AC_MSG_RESULT($has_iquote)
472 if test "x-$has_iquote" = "x-yes" ; then
473     aros_cflags_iquote=-iquote
474     aros_cflags_iquote_end=
475 else
476     aros_cflags_iquote=-I
477     aros_cflags_iquote_end=-I-
479 CFLAGS="$save_cflags"
481 AC_SUBST(aros_cflags_iquote)
482 AC_SUBST(aros_cflags_iquote_end)
484 #-----------------------------------------------------------------------------
486 # Disable pointer-signedness warnings if the compiler recognises the option
487 # (this only works for the host compiler at the moment)
489 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
490 save_cflags="$CFLAGS"
491 CFLAGS="$CFLAGS -Wno-pointer-sign"
492 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
493 AC_MSG_RESULT($use_no_sign_warning)
494 if test "x-$use_no_sign_warning" = "x-yesnnn" ; then
495     aros_host_cflags="$aros_host_cflags -Wno-pointer-sign"
497 CFLAGS="$save_cflags"
499 #-----------------------------------------------------------------------------
501 AC_MSG_CHECKING([for type of build])
502 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")
504 if test "$build_type" = "nightly"; then
505     build_type_string="NIGHTLY"
506 elif test "$build_type" = "snapshot"; then
507     build_type_string="SNAPSHOT"
508 elif test "$build_type" = "milestone"; then
509     build_type_string="MILESTONE"
510 elif test "$build_type" = "release"; then
511     build_type_string="RELEASE"
512 else
513     build_type_string="PERSONAL"
514     build_type="personal"
517 aros_config_cflags="$aros_config_cflags -DAROS_BUILD_TYPE=AROS_BUILD_TYPE_$build_type_string"
519 AC_MSG_RESULT($build_type)
521 #-----------------------------------------------------------------------------
522 all_debug_types="messages stack mungwall modules symbols"
524 AC_MSG_CHECKING([which debug types to enable])
525 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)]),
526  debug="$enableval",debug="")
528 if test "$debug" = "" -o "$debug" = "no"; then
529     debug="none"
530 elif test "$debug" = "yes"; then
531     debug="all"
534 if test "$debug" = "all" ; then
535     debug=$all_debug_types
536     for d in $all_debug_types; do
537         export aros_${d}_debug="1"
538     done
539 else
540     for d in $all_debug_types; do
541         export aros_${d}_debug="0"
542     done
545 if test "$debug" != "none"; then
546     debug=`echo $debug | sed s/,/\ /g`
547     for d in $debug; do
548         found="0"
549         for d2 in $all_debug_types; do
550             if test "$d2" = "$d"; then
551                 found="1"
552                 break
553             fi
554         done
555         if test "$found" = "0"; then
556             AC_MSG_ERROR([unrecognized debug type "$d". Available types are: all none $all_debug_types])
557         fi
558         export aros_${d}_debug="1"
559     done
560     aros_debug="yes"
562 AC_MSG_RESULT($debug)
564 if test "$aros_messages_debug" = "1"; then
565     aros_messages_debug="-DADEBUG=1 -DMDEBUG=1"
566 else
567     aros_messages_debug=""
569 if test "$aros_symbols_debug" = "1"; then
570     aros_symbols_debug="-g"
571 else
572     aros_symbols_debug=""
575 # These are the flags to pass when compiling debugged programs
576 aros_debug_cflags="$aros_symbols_debug $aros_messages_debug"
577 aros_debug_aflags=""
578 aros_debug_ldflags="$aros_symbols_debug"
580 #-----------------------------------------------------------------------------
581 #   Checking for distcc and ccache.
583 #   Always apply the transforms in this particular order. Basically you should
584 #   always run 'ccache distcc compiler' in that order for the best performance.
586 AC_MSG_CHECKING([whether to enable distcc])
587 AC_ARG_ENABLE(distcc,AC_HELP_STRING([--enable-distcc],[Use distcc as a front end to the compiler (default=no).]),distcc="$enableval",distcc="no")
588 if test "$distcc" != "" -a "$distcc" != "no"; then
589     # AC_CHECK_PROG will print out the result in this case
590     AC_PATH_PROG(DISTCC,[distcc],distcc,)
591 else
592     AC_MSG_RESULT(no)
595 AC_MSG_CHECKING([whether to enable ccache])
596 AC_ARG_ENABLE(ccache,AC_HELP_STRING([--enable-ccache],[Use ccache as a front end to the compiler (default=no).]),ccache="$enableval",ccache="no")
597 if test "$ccache" != "" -a "$ccache" != "no"; then
598     # AC_CHECK_PROG will print out the result in this case
599     AC_CHECK_PROG(CCACHE,[ccache],ccache,)
600 else
601     AC_MSG_RESULT(no)
604 #-----------------------------------------------------------------------------
605 AC_MSG_CHECKING([what optimization flags to use])
606 AC_ARG_WITH(optimization,AC_HELP_STRING([--with-optimization=FLAGS],[Use optimization flags FLAGS (default=-O2).]),optimization="$withval",optimization="unknown")
607 if test "$optimization" = "unknown"; then
608     dnl default is -O2 for normal builds, -O0 for debug builds
609     if test "$debug" != "none"; then
610         optimization="-O0"
611     else
612         optimization="-O2"
613     fi
615 aros_config_cflags="$aros_config_cflags $optimization"
616 AC_MSG_RESULT($optimization)
618 #-----------------------------------------------------------------------------
619 AC_MSG_CHECKING([what target variant to enable])
620 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")
621 if test "$target_variant" = "none"; then
622     aros_target_variant=""
623     aros_target_suffix=""
624 else
625     aros_target_variant="$target_variant"
626     aros_target_suffix="-$target_variant"
628 AC_MSG_RESULT($enableval)
630 target_bootloader="none"
632 #-----------------------------------------------------------------------------
633 # This is the target configuration switch.
634 case "$target_os" in
635     linux*)
636         aros_target_arch="linux"
637         case "$target_cpu" in
638             *m68k*)
639                 aros_target_cpu="m68k"
640                 aros_object_format="m68kelf"
641                 aros_flavour="emulcompat"
642                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__linux__"
643                 aros_shared_ldflags="-Wl,-T,\$(TOP)/config/linux/m68k/script.so"
644                 aros_kernel_ldflags="-Wl,-rpath,./lib,-T,\$(TOP)/config/linux/m68k/script.normal"
645                 gcc_target_cpu="mc68000"
646                 ;;
647             *i?86*)
648                 aros_target_cpu="i386"
649                 aros_object_format="elf_i386"
650                 aros_flavour="emulation"
651                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__linux__"
652                 aros_default_wbdepth=8
653                 gcc_target_cpu="i386"
654                 ;;
655             *x86_64*)
656                 aros_target_cpu="x86_64"
657                 aros_object_format="elf_x86_64"
658                 aros_flavour="emulation"
659                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64 -D__linux__"
660                 aros_config_cflags="$aros_config_cflags -mno-red-zone"
661                 aros_default_wbdepth=8
662                 gcc_target_cpu="x86_64"
663                 ;;
664             *powerpc*)
665                 aros_target_cpu="ppc"
666                 aros_object_format="elf32ppc"
667                 aros_flavour="emulation"
668                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
669                 aros_default_wbdepth=8
670                 gcc_target_cpu="ppc"
671                 ;;
672 # TODO
673 # Same as powerpc, but I need this for the nightly build to work again.
674 # Actually, the nightly should be made working with powerpc target.
675 # That just was too much work for the moment, another week or two.
676             *ppc*)
677                 aros_target_cpu="ppc"
678                 aros_object_format="elf32ppc"
679                 aros_flavour="emulation"
680                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc -D__linux__"
681                 aros_default_wbdepth=8
682                 gcc_target_cpu="ppc"
683                 ;;
684             *)
685                 AC_MSG_ERROR("Unknown CPU for Linux -- $target_cpu")
686                 ;;
687         esac
688     ;;
690     pc)
691         aros_target_arch="pc"
692         aros_shared_default="no"
693         target_bootloader="grub"
694         case "$target_cpu" in
695             *i?86*)
696                 aros_target_cpu="i386"
698                 dnl If somebody hasn't already set the target object
699                 dnl format, then use this value. Mostly to support
700                 dnl FreeBSD cross-compilation.
701                 dnl TODO: Remove when we always use our compiler.
703                 if test "$aros_object_format" = "" ; then
704                     aros_object_format="elf_i386"
705                 fi
706                 aros_flavour="standalone"
707                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
708                 aros_kernel_ldflags=""
709                 aros_default_wbwidth=640
710                 aros_default_wbheight=480
711                 gcc_target_cpu="i386"
712                 ;;
713             *x86_64*)
714                 aros_target_cpu="x86_64"
715                 aros_serial_debug=1
716                 if test "$aros_object_format" = "" ; then
717                     aros_object_format="elf_x86_64"
718                 fi
719                 aros_flavour="standalone"
720                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dx86_64"
721                 aros_config_cflags="$aros_config_cflags -fno-asynchronous-unwind-tables -mno-red-zone"
722                 aros_kernel_ldflags=""
723                 aros_default_wbwidth=640
724                 aros_default_wbheight=480
725                 gcc_target_cpu="x86_64"
726                 ;;
727             *)
728                 AC_MSG_ERROR("Unknown native CPU -- $target_cpu")
729                 ;;
730         esac
731         ;;
733     prep)
734         aros_target_arch="prep"
735         aros_shared_default="no"
736         aros_target_cpu="ppc"
737         aros_object_format="elf32ppc"
738         aros_flavour="ppcnative"
739         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
740         aros_kernel_ldflags=""
741         aros_default_wbwidth=640
742         aros_default_wbheight=480
743         gcc_target_cpu="ppc"
744         case "$target_cpu" in
745             *cross*)
746                 aros_target_cc="ppc-linux-gcc -pipe"
747                 aros_target_ld="ppc-linux-ld"
748                 aros_target_as="ppc-linux-as"
749                 aros_target_ar="ppc-linux-ar"
750                 aros_target_ranlib="ppc-linux-ranlib"
751                 aros_target_nm="ppc-linux-nm"
752                 aros_target_strip="ppc-linux-strip"
753                 aros_target_objcopy="ppc-linux-objcopy"
754                 aros_target_objdump="ppc-linux-objdump"
755                 aros_shared_ld="ppc-linux-ld"
756                 aros_kernel_ld="ppc-linux-ld"
757                 ;;
758             *)
759                 ;;
760         esac
761         ;;
763     freebsd*)
764         aros_target_arch="freebsd"
765         aros_target_cpu="i386"
766         aros_flavour="emulation"
767         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
768         gcc_target_cpu="i386"
770         aros_target_strip_flags="-x"
771         ;;
773     darwin*)
774         aros_target_arch="darwin"
775         aros_target_cpu="i386"
776         aros_flavour="emulation"
777         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
778         gcc_target_cpu="i386"
780         aros_target_strip_flags="-x"
781         ;;
783     netbsd*)
784         aros_target_arch="netbsd"
785         case "$target_cpu" in
786             *m68k*)
787                 aros_target_cpu="m68k"
788                 aros_object_format="m68kelf"
789                 aros_flavour="emulcompat"
790                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
791                 gcc_target_cpu="mc68000"
792                 ;;
793             *i?86*)
794                 aros_target_cpu="i386"
795                 aros_object_format="elf_i386"
796                 aros_flavour="emulation"
797                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
798                 aros_default_wbdepth=8
799                 gcc_target_cpu="i386"
800                 ;;
801             *)
802                 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
803                 ;;
804         esac
805         aros_target_genmap="-Wl,-M -Xlinker >"
806         aros_flavour="emulation"
807         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
808         ;;   
810     openbsd*)
811         aros_target_arch="openbsd"
812         case "$target_cpu" in
813             *i?86*)
814                 aros_target_cpu="i386"
815                 aros_object_format="elf_i386"
816                 aros_flavour="emulation"
817                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
818                 gcc_target_cpu="i386"
819                 ;;
820             *)
821                 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
822                 ;;
823         esac
824         aros_target_genmap="-Wl,-M -Xlinker >"
825         aros_target_nm_flags="-u"
826         aros_flavour="emulation"
827         ;;
829     solaris*)
830         aros_target_arch="solaris"
831         case "$target_cpu" in
832             *sparc*)
833                 aros_target_cpu="sparc"
834                 aros_object_format="elf_sparc"
835                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
836                 gcc_target_cpu="sparc"
837                 ;;
838             *)
839                 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
840                 ;;
841         esac
842         aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
843         aros_flavour="emulation"
844         ;;
846     morphos*)
847         aros_target_arch="morphos"
848         aros_shared_default="no"
849         aros_target_cpu="ppc"
850         aros_object_format="elf_ppc"
851         aros_flavour="nativecompat"
852         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
853         gcc_target_cpu="ppc"
854         ;;
856     sam440)
857         aros_target_arch="sam440"
858         aros_shared_default="no"
859         aros_target_cpu="ppc"
860         aros_object_format="elf32ppc"
861         aros_flavour="ppcnative"
862         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
863         aros_kernel_ldflags=""
864         aros_default_wbwidth=640
865         aros_default_wbheight=480
866         aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
867         gcc_target_cpu="powerpc"
868         case "$target_cpu" in
869             *powerpc*)
870                 aros_target_cc="powerpc-linux-gcc -pipe"
871                 aros_target_ld="powerpc-linux-ld"
872                 aros_target_as="powerpc-linux-as"
873                 aros_target_ar="powerpc-linux-ar"
874                 aros_target_ranlib="powerpc-linux-ranlib"
875                 aros_target_nm="powerpc-linux-nm"
876                 aros_target_strip="powerpc-linux-strip"
877                 aros_target_objcopy="powerpc-linux-objcopy"
878                 aros_target_objdump="powerpc-linux-objdump"
879                 aros_shared_ld="powerpc-linux-ld"
880                 aros_kernel_ld="powerpc-linux-ld"
881                 ;;
882             *)
883                 ;;
884         esac
885         ;;
887     amiga*)
888         aros_target_arch="amiga"
889         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
890         aros_shared_default="no"
892         aros_config_cflags="$aros_config_cflags -fomit-frame-pointer -fbuiltin -ffreestanding"
894         case "$target_cpu" in
895             *m68k*)
896                 aros_target_cpu="m68k"
897                 aros_object_format="m68kelf"
898                 aros_flavour="nativecompat"
899                 gcc_target_cpu="mc68000"
900                 ;;
901             *ppc*)
902                 aros_cpu="ppc"
903                 aros_flavour="native"
904                 gcc_target_cpu="ppc"
905                 ;;
906             *)
907                 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
908                 ;;
909         esac
910         ;;
912     cygwin*)
913         aros_target_arch="cygwin"
914         aros_shared_default="no"
915         case "$target_cpu" in
916             *i?86*)
917                 aros_target_cpu="i386"
918                 aros_object_format="elf_i386"
919                 aros_flavour="emulation"
920                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__CYGWIN32__"
921                 aros_shared_cflags=""
922                 aros_default_wbdepth=8
923                 gcc_target_cpu="i386"
924                 ;;
925             *)
926                 AC_MSG_ERROR("Unknown CPU for CygWin -- $target_cpu")
927                 ;;
928         esac
929     ;;
931     mingw32*)
932         aros_target_arch="mingw32"
933         aros_shared_default="no"
934         case "$target_cpu" in
935             *i?86*)
936                 aros_target_cpu="i386"
937                 aros_object_format="elf_i386"
938                 aros_flavour="emulation"
939                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
940                 aros_shared_cflags=""
941                 aros_default_wbdepth=8
942                 gcc_target_cpu="i386"
943                 ;;
944             *)
945                 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
946                 ;;
947         esac
948     ;;
949     pp*)
950         aros_target_arch="pp"
951         aros_shared_default="no"
952         case "$target_cpu" in
953             *m68k*)
954                 aros_target_cpu="m68k"
955                 aros_object_format="m68kelf"
956                 aros_flavour="palmnative"
957                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
958                 aros_kernel_ldflags=""
959                 aros_default_wbwidth=160
960                 aros_default_wbheight=160
961                 aros_default_wbdepth=1
962                 aros_target_cc="m68k-elf-gcc -pipe"
963                 aros_target_ld="$(which m68k-elf-ld)"
964                 aros_target_as="m68k-elf-gcc -pipe"
965                 aros_shared_ld="m68k-elf-gcc"
966                 aros_kernel_ld="m68k-elf-gcc"
967                 aros_target_ar="m68k-elf-ar"
968                 aros_target_ar_flags="cru"
969                 aros_target_ranlib="m68k-elf-ranlib"
970                 aros_target_nm="m68k-elf-nm"
971                 aros_target_objcopy="m68k-elf-objcopy"
972                 aros_target_objdump="m68k-elf-objdump"
973                 aros_compiler_libs="-lgcc1"
974                 aros_shared_default=no
975                 aros_shared_cflags="-fpic"
976                 aros_shared_aflags=""
977                 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
978                 aros_kernel_ldflags="-Wl,-rpath,./lib"
979                 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug  $aros_messages_debug -mc68000 -Wa,-mc68000"
980                 aros_debug_aflags=""
981                 aros_debug_ldflags="$aros_symbols_debug"
982                 aros_mungwall_debug="0"
983                 aros_modules_debug="0"
984                 gcc_target_cpu="mc68000"
985                 ignore_undefined_symbols="-ius"
986                 ;;
987            *)
988                 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
989                 ;;
990         esac
991         ;;
993     mac*)
994         aros_target_arch="mac"
995         aros_shared_default="no"
996         case "$target_cpu" in
997             *m68k*)
998                 aros_target_cpu="m68k"
999                 aros_object_format="m68kelf"
1000                 aros_flavour="mac68knative"
1001                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1002                 aros_default_wbwidth=512
1003                 aros_default_wbheight=384
1004                 aros_default_wbdepth=8
1005                 aros_target_cc="m68k-elf-gcc -pipe"
1006                 aros_target_ld="$(which m68k-elf-ld)"
1007                 aros_target_as="m68k-elf-gcc -pipe"
1008                 aros_shared_ld="m68k-elf-gcc"
1009                 aros_kernel_ld="m68k-elf-gcc"
1010                 aros_target_ar="m68k-elf-ar"
1011                 aros_target_ar_flags="cru"
1012                 aros_target_ranlib="m68k-elf-ranlib"
1013                 aros_target_nm="m68k-elf-nm"
1014                 aros_target_objcopy="m68k-elf-objcopy"
1015                 aros_target_objdump="m68k-elf-objdump"
1016                 aros_compiler_libs="-lgcc1"
1017                 aros_shared_default=no
1018                 aros_shared_cflags="-fpic"
1019                 aros_shared_aflags=""
1020                 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1021                 aros_kernel_ldflags="-Wl,-rpath,./lib"
1022                 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug  $aros_messages_debug -mc68000"
1023                 aros_debug_aflags=""
1024                 aros_debug_ldflags="$aros_symbols_debug"
1025                 aros_mungwall_debug="0"
1026                 aros_modules_debug="0"
1027                 gcc_target_cpu="mc68000"
1028                 ignore_undefined_symbols="-ius"
1029                 ;;
1030            *)
1031                 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
1032                 ;;
1033         esac
1034         ;;
1036     *)
1037         AC_MSG_ERROR([Unsupported target architecture $target])
1038         ;;
1039 esac
1041 AC_MSG_CHECKING([Where to download sourcecode for external ports])
1042 AC_ARG_WITH(portssources,AC_HELP_STRING([--with-portssources=DIR],[Where to download sourcecode for external ports]),with_portssrcdir=$withval,with_portssrcdir="default")
1043 if test "$with_portssrcdir" = "default"; then
1044     AROS_PORTSSRCDIR="$AROS_BUILDDIR/bin/Sources"
1045 else
1046     AROS_PORTSSRCDIR="$with_portssrcdir"
1048 AC_MSG_RESULT($AROS_PORTSSRCDIR)
1050 AC_MSG_CHECKING([which bootloader to use])
1051 AC_ARG_WITH(bootloader,AC_HELP_STRING([--with-bootloader=NAME],[Use a specific bootloader]),target_bootloader=$withval,target_bootloader=$target_bootloader)
1052 if test "$target_bootloader" = "none"; then
1053     aros_target_bootloader=""
1054 else
1055     aros_target_bootloader="$target_bootloader"
1057 AC_MSG_RESULT($target_bootloader)
1059 # Check LZO when compiling the grub2 bootloader on i386/x86_64.
1060 aros_liblzo_check="no"
1061 case "$aros_target_bootloader" in
1062     grub2*)
1063     case "$target_cpu" in
1064         *i?86*)
1065         aros_liblzo_check="yes"
1066         ;;
1067         *x86_64*)
1068         aros_liblzo_check="yes"  
1069         ;;
1070         *)
1071         ;;
1072     esac
1073   
1074     ;;
1075    *)
1076     ;;
1077 esac
1079 if test "$aros_liblzo_check" = "yes"; then
1080     # There are three possibilities. LZO version 2 installed with the name
1081     # liblzo2, with the name liblzo, and LZO version 1.  
1082     AC_CHECK_LIB(lzo2, __lzo_init_v2, [LIBLZO="-llzo2"],  
1083     AC_CHECK_LIB(lzo, __lzo_init_v2, [LIBLZO="-llzo"],
1084                 AC_CHECK_LIB(lzo, __lzo_init2, [LIBLZO="-llzo"],
1085                 AC_MSG_ERROR([LZO library version 1.02 or later is required]))))
1087     AC_SUBST(LIBLZO)
1088     LIBS="$LIBS $LIBLZO"
1089     AC_CHECK_FUNC(lzo1x_999_compress, ,
1090                 [AC_MSG_ERROR([LZO1X-999 must be enabled])])
1092     # LZO version 2 uses lzo/lzo1x.h, while LZO version 1 uses lzo1x.h.
1093     AC_CHECK_HEADERS(lzo/lzo1x.h lzo1x.h)
1096 AC_MSG_CHECKING([which GUI Theme to use])
1097 AC_ARG_WITH(theme,AC_HELP_STRING([--with-theme=NAME],[Use a specific GUI Theme]),target_guitheme=$withval,target_guitheme="default")
1098 if test "$target_guitheme" = "default"; then
1099     aros_target_guitheme="Ice"
1100 else
1101     aros_target_guitheme="$target_guitheme"
1103 AC_MSG_RESULT($aros_target_guitheme)
1105 # Find out if we are cross-compiling (ie. if we can't use the host compiler
1106 # for target code)
1107 cross_compiling=no
1108 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
1109     cross_compiling=yes
1111 if test "$aros_host_arch" == "darwin" ; then
1112     cross_compiling=yes
1115 # Set prefix for target compiler etc. if we're cross-compiling
1116 # (should possibly be earlier but needs to be after AC_PROG_CC)
1117 if test "$cross_compiling" = "yes" ; then
1118     target_tool_prefix=${target_cpu}-elf-
1119     CC=${target_tool_prefix}gcc
1122 # Find all the tools we need to compile. This could be cross-compiling
1123 # though! If that is the case we use the GNU form of the target and
1124 # simply add this to the front of the binary name. This is rather simple,
1125 # but it should work under most circumstances.
1127 # The default tools are to use the same as the host, but only if the
1128 # host and target CPU are the same. With GCC this is normally enough.
1131 aros_cc_pre=""
1132 aros_shared_ld="$aros_host_ld"
1134 aros_target_mkdep="$aros_host_mkdep"
1135 aros_target_incl_def="$aros_host_incl"
1137 AC_PATH_PROG(aros_kernel_cc,$CC)
1139 # The default tools executables to be linked to.
1140 AROS_TOOL_TARGET(aros_target_as_ln,as)
1141 AROS_REQUIRED(as,$aros_target_as_ln)
1142 AROS_TOOL_TARGET(aros_kernel_ld,ld)
1143 AROS_REQUIRED(ld,$aros_kernel_ld)
1144 AROS_TOOL_TARGET(aros_target_ar_ln,ar)
1145 AROS_REQUIRED(ar,$aros_target_ar_ln)
1146 AROS_TOOL_TARGET(aros_target_nm_ln,nm)
1147 AROS_REQUIRED(nm,$aros_target_nm_ln)
1148 AROS_TOOL_TARGET(aros_target_objcopy_ln,objcopy)
1149 AROS_REQUIRED(objcopy,$aros_target_objcopy_ln)
1150 AROS_TOOL_TARGET(aros_target_objdump_ln,objdump)
1151 AROS_REQUIRED(objdump,$aros_target_objdump_ln)
1152 AROS_TOOL_TARGET(aros_target_ranlib_ln,ranlib)
1153 AROS_REQUIRED(ranlib,$aros_target_ranlib_ln)
1154 AROS_TOOL_TARGET(aros_target_strip_ln,strip)
1155 AROS_REQUIRED(strip,$aros_target_strip_ln)
1157 if test "$GCC" = "yes"; then
1158     aros_target_cc_path=`$aros_kernel_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
1161 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/config"
1162 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
1163 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
1164 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
1165 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
1166 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
1167 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
1169 # aros_cc_pre is a variable that is added to the front of the compiler name
1170 # in the generated aros-gcc shell script. We need this to enable the cache
1171 # to work across cleaned builds. Also, support DISTCC using the correct
1172 # environment variable.
1175 if test "x${DISTCC}" != "x" ; then
1176     if test "x${CCACHE}" != "x" ; then
1177         aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
1178     else
1179         aros_cc_pre="${DISTCC} "
1180     fi
1181 else
1182     if test "x${CCACHE}" != "x" ; then
1183         aros_cc_pre="${CCACHE} "
1184     fi
1187 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros"
1189 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
1190 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
1191 AC_SUBST(aros_target_nix_ldflags,-nix)
1192 AC_SUBST(aros_target_detach_ldflags,-detach)
1193 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
1195 # Target tools
1196 aros_target_cc="${prefix}-gcc"
1197 aros_target_as="${prefix}-as"
1198 aros_target_ld="${prefix}-ld"
1199 aros_target_ar="${prefix}-ar $aros_target_ar_flags"
1200 aros_target_objcopy=${prefix}-objcopy
1201 aros_target_objdump=${prefix}-objdump
1202 aros_target_ranlib="${prefix}-ranlib $aros_target_ranlib_flags"
1203 aros_target_nm="${prefix}-nm $aros_target_nm_flags"
1204 aros_kernel_nm="${prefix}-nm"
1205 aros_target_strip=${prefix}-strip
1207 # Find the system include path. We can suggest that an alternative is
1208 # used if we don't get it correct. The default is to use /usr/include.
1209 # Which is set in the aros_target_incl_def variable.
1211 AC_ARG_ENABLE(includes,
1212 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
1213 [aros_target_incl=$enable_includes], [aros_target_incl=$aros_target_incl_def])
1215 dnl find out about the target cc's include path
1216 AC_MSG_CHECKING([for the target compiler's include path])
1217 if test "$aros_target_cc_includes" = "" ; then
1218     #try to guess where the directory is
1219     aros_target_cc_includes=`dirname \`${aros_kernel_cc} -print-libgcc-file-name\``/include
1220     if ! test -d $aros_target_cc_includes; then
1221         #the directory doesn't exist, we need to do some more work
1222         aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
1223         
1224         #these are the headers we're looling for
1225         headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
1226                  stddef.h xmmintrin.h iso646.h stdarg.h unwind.h   \
1227                  zutil.h"
1229         dirs=
1230         for h in $headers; do
1231             #which other headers each of the above headers needs?
1232             deps=$(echo "#include <$h>" | \
1233                    $aros_host_cc -E -M - 2>/dev/null | \
1234                    sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
1235             
1236             #copy all the needed headers to a directory beneath gendir
1237             for d in $deps; do
1238                 h=$(basename $d)
1239                 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
1240                                                 sed -n "s,^.*/include\(/.*\),\1,p")
1241                 ! test -d $dir && mkdir -p $dir
1242                 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
1243             done
1244         done        
1245     fi
1247 AC_MSG_RESULT($aros_target_cc_includes)
1249 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
1250 AC_MSG_CHECKING([for default resolution of WBScreen])
1251 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
1252 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
1253 if test "$resolution" = "yes" ; then
1254     resolution="none"
1256 if test "$resolution" = "no" ; then
1257     resolution="none"
1259 if test "$resolution" != "none" ; then
1260     aros_default_wbwidth=`echo $resolution | cut -d'x' -f1`
1261     aros_default_wbheight=`echo $resolution | cut -d'x' -f2`
1262     aros_default_wbdepth=`echo $resolution | cut -d'x' -f3`
1264 AC_MSG_RESULT($aros_default_wbwidth x $aros_default_wbheight x $aros_default_wbdepth)
1265 aros_cv_default_wbwidth=$aros_default_wbwidth
1266 aros_cv_default_wbheight=$aros_default_wbheight
1267 aros_cv_default_wbdepth=$aros_default_wbdepth
1269 dnl See if the user wants the BOCHS hack for native flavour
1270 AC_MSG_CHECKING([if bochs hack is enabled])
1271 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")
1272 if test "$bochs_hack" = "yes" ; then
1273     aros_bochs_hack="1"
1275 AC_MSG_RESULT($bochs_hack)
1277 dnl See if the user wants the serial debug output for native flavour
1278 AC_MSG_CHECKING([if serial debug is enabled])
1279 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)
1280 if test "$aros_serial_debug" = 0 ; then
1281     serial_debug_forced=""
1282     if test "$serial_debug" = "yes" ; then
1283         serial_debug="2"
1284     fi
1285     if test "$serial_debug" = "no" ; then
1286         serial_debug="none"
1287     fi
1288 else
1289     serial_debug_forced="(forced)"
1290     serial_debug=$aros_serial_debug
1292 if test "$serial_debug" != "none" ; then
1293     aros_serial_debug=$serial_debug
1294     AC_MSG_RESULT($serial_debug_forced on port $serial_debug)
1295 else
1296     AC_MSG_RESULT(no)
1299 dnl See if the user wants the palm debug output hack for palm native flavour
1300 AC_MSG_CHECKING([if palm debug hack is enabled])
1301 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")
1302 if test "$palm_debug_hack" = "yes" ; then
1303     aros_palm_debug_hack="1"
1305 AC_MSG_RESULT($palm_debug_hack)
1308 dnl See if the user wants nesting supervisor activated for unix flavour
1309 AC_MSG_CHECKING([if nesting supervisor support is enabled])
1310 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")
1311 if test "$nesting_supervisor" = "yes" ; then
1312     aros_nesting_supervisor="1"
1314 AC_MSG_RESULT($nesting_supervisor)
1317 dnl things specifically required for hosted flavours
1318 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1320     if test "x-$aros_host_arch" != "x-darwin" ; then
1321       dnl some kind of dynamic library access system is required for hostlib.resource
1322       AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
1323       if test "x-$have_dl" = "x-no" ; then
1324           AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
1325                                     aros_host_ldflags="$aros_host_ldflags -ldl"],
1326                                     have_dl="no")
1327       fi
1328       if test "x-$have_dl" = "x-no" ; then
1329           AC_MSG_ERROR([dlopen() dynamic linker functions not available])
1330       fi
1331     fi
1334     dnl x11 hidd
1335     AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
1336                                            [build X11 hidd for hosted (default=auto)]),
1337                                            x11_hidd="$enableval",
1338                                            x11_hidd="auto")
1339     case "x-$x11_hidd" in
1340         x-yes|x-no|x-auto)                 ;;
1341         *)                 x11_hidd="auto" ;;
1342     esac
1344     dnl they want it
1345     if test "x-$x11_hidd" != "x-no" ; then
1347         dnl find x11 stuff
1348         AC_PATH_X
1350         x_cflags=
1351         for path in $x_libraries
1352         do
1353             x_cflags="$x_cflags -L$path"
1354         done
1356         for path in $x_includes
1357         do
1358             x_cflags="$x_cflags -I$path"
1359         done
1360         
1361         if test "x-$no_x" = "x-yes" ; then
1363             dnl didn't find it
1364             if test "x-$x11_hidd" != "x-auto" ; then
1365                 dnl and they explicitly asked for it, bail out
1366                 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
1367             fi
1368         
1369         else
1370             dnl found it, setup the metatarget
1371             x11_hidd_target=kernel-x11gfx
1374             dnl setup shared memory extensions
1375             AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
1376                                                   [use X11 shared memory (default=auto)]),
1377                                                   x11_hidd_shm="$enableval",
1378                                                   x11_hidd_shm="auto")
1379             case "x-$x11_hidd_shm" in
1380                 x-yes|x-no|x-auto)                     ;;
1381                 *)                 x11_hidd_shm="auto" ;;
1382             esac
1384             have_xshm=no
1386             dnl they want it
1387             if test "x-$x11_hidd_shm" != "x-no" ; then
1389                 dnl system shm headers
1390                 AC_CHECK_HEADERS(sys/ipc.h)
1391                 AC_CHECK_HEADERS(sys/shm.h)
1393                 dnl got them
1394                 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
1396                     dnl make sure X libs have shm functions
1397                     save_cflags="$CFLAGS"
1398                     CFLAGS="$CFLAGS $x_cflags"
1399                     AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
1400                     CFLAGS="$save_cflags"
1401                 fi
1402             fi
1404             dnl detection done, prepare output
1405             if test "x-$have_xshm" = "x-yes" ; then
1406                 dnl we can do shm
1407                 DO_XSHM_SUPPORT="1"
1408             elif test "x-$x11_hidd_shm" = "x-yes" ; then
1409                 dnl they explicitly asked for it, but we can't do it
1410                 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
1411             else
1412                 dnl otherwise just disable it
1413                 DO_XSHM_SUPPORT="0"
1414             fi
1416             
1417             dnl setup vidmode (fullscreen) extensions
1418             AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
1419                                                       [use X11 vidmode extension (default=auto)]),
1420                                                       x11_hidd_vidmode="$enableval",
1421                                                       x11_hidd_vidmode="auto")
1422             case "x-$x11_hidd_vidmode" in
1423                 x-yes|x-no|x-auto)                         ;;
1424                 *)                 x11_hidd_vidmode="auto" ;;
1425             esac
1427             have_vidmode=no
1429             dnl they want it
1430             if test "x-$x11_hidd_vidmode" != "x-no" ; then
1432                 dnl make sure X libs have vidmode functions
1433                 save_cflags="$CFLAGS"
1434                 CFLAGS="$CFLAGS $x_cflags"
1435                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
1436                 CFLAGS="$save_cflags"
1437             fi
1439             dnl detection done, prepare output
1440             if test "x-$have_vidmode" = "x-yes" ; then
1441                 dnl we can do vidmode
1442                 DO_VIDMODE_SUPPORT="1"
1443             elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
1444                 dnl they explicitly asked for it, but we can't do it
1445                 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
1446             else
1447                 dnl otherwise just disable it
1448                 DO_VIDMODE_SUPPORT="0"
1449             fi
1450         fi
1452         aros_host_x11_includes=$x_includes 
1453         aros_host_x11_libdirs=$x_libraries
1454     fi
1457     dnl sdl hidd
1458     AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
1459                                            [build SDL hidd for hosted (default=auto)]),
1460                                            sdl_hidd="$enableval",
1461                                            sdl_hidd="auto")
1462     case "x-$sdl_hidd" in
1463         x-yes|x-no|x-auto)                 ;;
1464         *)                 sdl_hidd="auto" ;;
1465     esac
1467     dnl they want it
1468     if test "x-$sdl_hidd" != "x-no" ; then
1470         dnl find sdl
1471         AM_PATH_SDL([1.2.10], have_sdl="yes", have_sdl="no")
1473         if test "x-$have_sdl" != "x-yes" ; then
1475             dnl didn't find it
1476             if test "x-$sdl_hidd" != "x-auto" ; then
1477                 dnl and they explicitly asked for it, bail out
1478                 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
1479             fi
1481         else
1482             dnl found it, setup the metatarget
1483             sdl_hidd_target=kernel-hidd-sdl
1484             aros_host_sdl_cflags=SDL_CFLAGS
1485             aros_host_sdl_libs=SDL_LIBS
1486         fi
1487     fi
1492 dnl See if the user wants dbus.library
1493 AC_MSG_CHECKING([if building of dbus.library is enabled])
1494 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
1495 if test "$dbus" = "yes" ; then
1496     ENABLE_DBUS=1
1497     DBUS_CFLAGS=`pkg-config --cflags dbus-1`
1498     DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
1499     KERNEL_DBUS_KOBJ=kernel-dbus-kobj
1500     KERNEL_DBUS_INCLUDES=kernel-dbus-includes
1501 else
1502     ENABLE_DBUS=0
1504 AC_MSG_RESULT($dbus)
1507 dnl --------------------------------------------------------------------
1508 dnl Configuration Output Section
1509 dnl --------------------------------------------------------------------
1511 # Generic
1512 AC_SUBST(aros_arch)
1513 AC_SUBST(aros_cpu)
1514 AC_SUBST(aros_flavour)
1515 AC_SUBST(aros_flavour_uc)
1516 AC_SUBST(AROS_BUILDDIR)
1517 AC_SUBST(AROS_SRCDIR)
1518 AC_SUBST(AROS_PORTSSRCDIR)
1520 # Host related
1521 AC_SUBST(aros_cc_pre)
1522 AC_SUBST(aros_host_strip)
1523 AC_SUBST(aros_host_arch)
1524 AC_SUBST(aros_host_cpu)
1525 AC_SUBST(aros_host_cc)
1526 AC_SUBST(aros_host_ar)
1527 AC_SUBST(aros_host_ranlib)
1528 AC_SUBST(aros_host_ld)
1529 AC_SUBST(aros_host_make)
1530 AC_SUBST(aros_host_cflags)
1531 AC_SUBST(aros_host_ldflags)
1532 AC_SUBST(aros_host_debug)
1533 AC_SUBST(aros_host_mkdep)
1534 AC_SUBST(aros_host_mkargs)
1535 AC_SUBST(aros_host_exe_suffix)
1536 AC_SUBST(aros_host_lib_suffix)
1537 AC_SUBST(aros_tools_dir)
1538 AC_SUBST(aros_host_aclocal)
1539 AC_SUBST(aros_host_autoconf)
1540 AC_SUBST(aros_host_autoheader)
1541 AC_SUBST(aros_host_automake)
1543 # Target Related
1544 AC_SUBST(aros_target_guitheme)
1545 AC_SUBST(aros_target_bootloader)
1546 AC_SUBST(aros_target_arch)
1547 AC_SUBST(aros_target_cpu)
1548 AC_SUBST(aros_target_variant)
1549 AC_SUBST(aros_target_suffix)
1550 AC_SUBST(aros_target_incl)
1551 AC_SUBST(aros_target_ar)
1552 AC_SUBST(aros_target_ranlib)
1553 AC_SUBST(aros_kernel_nm)
1554 AC_SUBST(aros_target_cc)
1555 AC_SUBST(aros_kernel_cc)
1556 AC_SUBST(aros_target_as)
1557 AC_SUBST(aros_target_ld)
1558 AC_SUBST(aros_kernel_ld)
1559 AC_SUBST(aros_target_cc_includes)
1560 AC_SUBST(aros_target_cc_path)
1561 AC_SUBST(aros_target_objdump)
1562 AC_SUBST(aros_target_objcopy)
1563 AC_SUBST(aros_target_strip)
1564 AC_SUBST(aros_target_nm)
1565 AC_SUBST(aros_shared_default)
1566 AC_SUBST(aros_shared_ld)
1567 AC_SUBST(aros_object_format)
1568 AC_SUBST(aros_compiler_libs)
1570 AC_SUBST(aros_config_cflags)
1571 AC_SUBST(aros_config_aflags)
1572 AC_SUBST(aros_config_ldflags)
1574 AC_SUBST(aros_shared_cflags)
1575 AC_SUBST(aros_shared_aflags)
1576 AC_SUBST(aros_shared_ldflags)
1577 AC_SUBST(aros_kernel_ldflags)
1578 AC_SUBST(aros_debug_cflags)
1579 AC_SUBST(aros_debug_aflags)
1580 AC_SUBST(aros_debug_ldflags)
1581 AC_SUBST(aros_target_genmap)
1582 AC_SUBST(aros_target_strip_flags)
1584 # Graphics Related
1585 AC_SUBST(x11_hidd_target)
1586 AC_SUBST(sdl_hidd_target)
1588 AC_SUBST(aros_default_wbwidth)
1589 AC_SUBST(aros_default_wbheight)
1590 AC_SUBST(aros_default_wbdepth)
1591 AC_SUBST(DO_XSHM_SUPPORT)
1592 AC_SUBST(DO_VIDMODE_SUPPORT)
1594 AC_SUBST(aros_host_x11_includes)
1595 AC_SUBST(aros_host_x11_libdirs)
1596 AC_SUBST(aros_host_sdl_cflags)
1597 AC_SUBST(aros_host_sdl_libs)
1599 # Native version related
1600 AC_SUBST(aros_bochs_hack)
1601 AC_SUBST(aros_serial_debug)
1603 # Palm native version related
1604 AC_SUBST(aros_palm_debug_hack)
1606 # Unix/Hosted version related
1607 AC_SUBST(aros_nesting_supervisor)
1609 # DBUS related
1610 AC_SUBST(ENABLE_DBUS)
1611 AC_SUBST(DBUS_CFLAGS)
1612 AC_SUBST(DBUS_LIBFLAGS)
1613 AC_SUBST(KERNEL_DBUS_KOBJ)
1614 AC_SUBST(KERNEL_DBUS_INCLUDES)
1616 # Debug related
1617 AC_SUBST(aros_debug)
1618 AC_SUBST(aros_mungwall_debug)
1619 AC_SUBST(aros_stack_debug)
1620 AC_SUBST(aros_modules_debug)
1622 # Collect-aros stuff: "-ius" to ignore undefined symbols
1623 AC_SUBST(ignore_undefined_symbols)
1625 # C compiler related
1626 AC_SUBST(gcc_target_cpu)
1628 dnl Prepare for output, make up all the generated patches
1629 case "$aros_flavour" in
1630 emulation)      aros_flavour_uc="AROS_FLAVOUR_EMULATION"
1631                 aros_flavour="emulation" ;;
1632 emulcompat)     aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
1633                 aros_flavour="emulation" ;;
1634 standalone)     aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
1635                 aros_flavour="standalone";;
1636 native)         aros_flavour_uc="AROS_FLAVOUR_NATIVE"
1637                 aros_flavour="native" ;;
1638 nativecompat)   aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
1639                 aros_flavour="native" ;;
1640 linklib)        aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
1641                 aros_flavour="linklib" ;;
1642 palmnative)     aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1643                 aros_flavour="palmnative" ;;
1644 mac68knative)   aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1645                 aros_flavour="mac68knative" ;;
1646 ppcnative)      aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
1647                 aros_flavour="ppcnative" ;;
1648 esac
1650 if test ! -d ${aros_inc_dir} ; then
1651     ${MKDIR} ${aros_inc_dir}
1653 if test ! -d ${aros_geninc_dir} ; then
1654     ${MKDIR} ${aros_geninc_dir}
1656 if test ! -d ${aros_hostcfg_dir} ; then
1657     ${MKDIR} ${aros_hostcfg_dir}
1659 if test ! -d ${aros_targetcfg_dir} ; then
1660     ${MKDIR} ${aros_targetcfg_dir}
1662 if test ! -d ${aros_tools_dir} ; then
1663     ${MKDIR} ${aros_tools_dir}
1665 if test ! -d ${aros_scripts_dir} ; then
1666     ${MKDIR} ${aros_scripts_dir}
1669 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
1671 AC_CONFIG_COMMANDS([compiler_executable],
1672     [
1673         prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
1674         mkdir -p $prefix
1675         prefix="${prefix}/${aros_target_cpu}-aros"
1676         prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
1678         echo ${prefix}
1679         echo ${prefix2}
1680         chmod a+x ${prefix2}-gcc ${prefix2}-ld
1682         ln -sf ${prefix2}-gcc          ${prefix}-gcc
1683         ln -sf ${prefix2}-ld           ${prefix}-ld
1685         ln -sf $aros_target_as_ln      ${prefix}-as
1686         ln -sf $aros_target_nm_ln      ${prefix}-nm
1687         ln -sf $aros_target_ar_ln      ${prefix}-ar
1688         ln -sf $aros_target_ranlib_ln  ${prefix}-ranlib
1689         ln -sf $aros_target_objcopy_ln ${prefix}-objcopy
1690         ln -sf $aros_target_objdump_ln ${prefix}-objdump
1691         ln -sf $aros_target_strip_ln   ${prefix}-strip
1693         ln -sf $aros_target_as_ln      ${prefix2}-as
1694         ln -sf $aros_target_nm_ln      ${prefix2}-nm
1695         ln -sf $aros_target_ar_ln      ${prefix2}-ar
1696         ln -sf $aros_target_ranlib_ln  ${prefix2}-ranlib
1697         ln -sf $aros_target_objcopy_ln ${prefix2}-objcopy
1698         ln -sf $aros_target_objdump_ln ${prefix2}-objdump
1699         ln -sf $aros_target_strip_ln   ${prefix2}-strip
1700     ],
1701     [
1702         aros_tools_dir=${aros_tools_dir}
1703         aros_target_cpu=${aros_target_cpu}
1704         aros_target_arch=${aros_target_arch}
1705         aros_target_suffix=${aros_target_suffix}
1706         aros_target_nm_ln=${aros_target_nm_ln}
1707         aros_target_as_ln=${aros_target_as_ln}
1708         aros_target_ar_ln=${aros_target_ar_ln}
1709         aros_target_ranlib_ln=${aros_target_ranlib_ln}
1710         aros_target_objdump_ln=${aros_target_objdump_ln}
1711         aros_target_objcopy_ln=${aros_target_objcopy_ln}
1712         aros_target_strip_ln=${aros_target_strip_ln}
1713     ]
1715 AC_CONFIG_COMMANDS([genshared_executable],
1716     [chmod a+x ${aros_scripts_dir}/genshared],
1717     [aros_scripts_dir=${aros_scripts_dir}]
1719 AC_CONFIG_COMMANDS([genmf_executable],
1720     [chmod a+x ${aros_tools_dir}/genmf.py],
1721     [aros_tools_dir=${aros_tools_dir}]
1723 AC_CONFIG_COMMANDS([adflib_myaros.conf_executable],
1724     [chmod a+x tools/adflib/myconf.aros]
1727 AC_CONFIG_FILES(
1728     Makefile
1729     rom/mmakefile
1730     config/make.cfg
1731     ${aros_inc_dir}/config.h:config/config.h.in
1732     ${aros_geninc_dir}/config.h:config/config.h.in
1733     ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
1734     ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
1735     mmake.config
1736     ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
1737     ${aros_targetcfg_dir}/specs:config/specs.in
1738     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-gcc:scripts/aros-gcc.in
1739     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
1740     ${aros_scripts_dir}/genshared:compiler/c_lib/source/lib_source/genshared.in
1741     ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
1742     tools/adflib/myconf.aros
1743     tools/collect-aros/env.h
1746 AC_OUTPUT
1748 dnl This is in order to not define SHARED_CFLAGS sometimes
1749 dnl We don't always do aros_shared_ar, aros_shared_cflags
1751 #XXX compatability...
1752 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
1754 if test -n "$aros_shared_cflags" ; then
1755     echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
1756     echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg