Protect host (Linux) malloc/free/... with Forbid()/Permit()
[tangerine.git] / configure.in
blob4d1e96ccf4bab9d278d2b05a09cd6da519dbc0b8
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         case "$target_cpu" in
774                 *i?86*)
775                         aros_target_cpu="i386"
776                         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
777                         gcc_target_cpu="i386"
778                         aros_object_format="elf_i386"
779                         aros_target_strip_flags="-x"
780                         ;;
781                 *)
782                         AC_MSG_ERROR("Unsupported target CPU for darwin hosted flavour -- $target_cpu")
783                         ;;
784         esac
785         ;;
786     netbsd*)
787         aros_target_arch="netbsd"
788         case "$target_cpu" in
789             *m68k*)
790                 aros_target_cpu="m68k"
791                 aros_object_format="m68kelf"
792                 aros_flavour="emulcompat"
793                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D__mc68000 -D__NetBSD__"
794                 gcc_target_cpu="mc68000"
795                 ;;
796             *i?86*)
797                 aros_target_cpu="i386"
798                 aros_object_format="elf_i386"
799                 aros_flavour="emulation"
800                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__NetBSD__"
801                 aros_default_wbdepth=8
802                 gcc_target_cpu="i386"
803                 ;;
804             *)
805                 AC_MSG_ERROR("Unknown CPU for NetBSD -- $target_cpu")
806                 ;;
807         esac
808         aros_target_genmap="-Wl,-M -Xlinker >"
809         aros_flavour="emulation"
810         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
811         ;;   
813     openbsd*)
814         aros_target_arch="openbsd"
815         case "$target_cpu" in
816             *i?86*)
817                 aros_target_cpu="i386"
818                 aros_object_format="elf_i386"
819                 aros_flavour="emulation"
820                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__OpenBSD__"
821                 gcc_target_cpu="i386"
822                 ;;
823             *)
824                 AC_MSG_ERROR("Unknown CPU for OpenBSD -- $target_cpu")
825                 ;;
826         esac
827         aros_target_genmap="-Wl,-M -Xlinker >"
828         aros_target_nm_flags="-u"
829         aros_flavour="emulation"
830         ;;
832     solaris*)
833         aros_target_arch="solaris"
834         case "$target_cpu" in
835            *i?86*)
836                aros_target_cpu="i386"
837                aros_object_format="elf_i386"
838                aros_flavour="emulation"
839                aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__Solaris__"
840                aros_default_wbdepth=8
841                gcc_target_cpu="i386"
842                ;;
843             *sparc*)
844                 aros_target_cpu="sparc"
845                 aros_object_format="elf_sparc"
846                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dsparc -D__Solaris__"
847                 gcc_target_cpu="sparc"
848                 ;;
849             *)
850                 AC_MSG_ERROR("Unknown CPU for Solaris -- $target_cpu")
851                 ;;
852         esac
853         aros_config_cflags="$aros_config_cflags -D$aros_target_cpu"
854         aros_flavour="emulation"
855         ;;
857     morphos*)
858         aros_target_arch="morphos"
859         aros_shared_default="no"
860         aros_target_cpu="ppc"
861         aros_object_format="elf_ppc"
862         aros_flavour="nativecompat"
863         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
864         gcc_target_cpu="ppc"
865         ;;
867     sam440)
868         aros_target_arch="sam440"
869         aros_shared_default="no"
870         aros_target_cpu="ppc"
871         aros_object_format="elf32ppc"
872         aros_flavour="ppcnative"
873         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
874         aros_kernel_ldflags=""
875         aros_default_wbwidth=640
876         aros_default_wbheight=480
877         aros_config_cflags="$aros_config_cflags -mcpu=440fp -mno-toc -fno-asynchronous-unwind-tables"
878         gcc_target_cpu="powerpc"
879         ;;
881     chrp)
882     aros_target_arch="chrp"
883     aros_shared_default="no"
884     aros_target_cpu="ppc"
885     aros_object_format="elf32ppc"
886     aros_flavour="ppcnative"
887     aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dppc"
888     aros_kernel_ldflags=""
889     aros_default_wbwidth=640
890     aros_default_wbheight=480
891     aros_config_cflags="$aros_config_cflags -mno-toc -fno-asynchronous-unwind-tables"    
892     gcc_target_cpu="powerpc"
893         case "$aros_target_variant" in
894             efika)
895             aros_config_cflags="$aros_config_cflags -DBIG_ENDIAN_OHCI=1 -mcpu=603e"
896             ;;
897         esac
898     ;;
900     amiga*)
901         aros_target_arch="amiga"
902         aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -D_AMIGA -DAMIGA"
903         aros_shared_default="no"
905         aros_config_cflags="$aros_config_cflags -fomit-frame-pointer -fbuiltin -ffreestanding"
907         case "$target_cpu" in
908             *m68k*)
909                 aros_target_cpu="m68k"
910                 aros_object_format="m68kelf"
911                 aros_flavour="nativecompat"
912                 gcc_target_cpu="mc68000"
913                 ;;
914             *ppc*)
915                 aros_cpu="ppc"
916                 aros_flavour="native"
917                 gcc_target_cpu="ppc"
918                 ;;
919             *)
920                 AC_MSG_ERROR("Unknown CPU for Amiga $target_cpu")
921                 ;;
922         esac
923         ;;
925     cygwin*)
926         aros_target_arch="cygwin"
927         aros_shared_default="no"
928         case "$target_cpu" in
929             *i?86*)
930                 aros_target_cpu="i386"
931                 aros_object_format="elf_i386"
932                 aros_flavour="emulation"
933                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386 -D__CYGWIN32__"
934                 aros_shared_cflags=""
935                 aros_default_wbdepth=8
936                 gcc_target_cpu="i386"
937                 aros_target_cc="i386-aros-gcc"
938                 aros_target_ld="i386-aros-ld"
939                 aros_target_as="i386-aros-as"
940                 aros_target_ar="i386-aros-ar"
941                 aros_target_ranlib="i386-aros-ranlib"
942                 aros_target_nm="i386-aros-nm"
943                 aros_target_strip="i386-aros-strip"
944                 aros_target_objcopy="i386-aros-objcopy"
945                 aros_target_objdump="i386-aros-objdump"
946                 ;;
947             *)
948                 AC_MSG_ERROR("Unknown CPU for CygWin -- $target_cpu")
949                 ;;
950         esac
951     ;;
953     mingw32*)
954         aros_target_arch="mingw32"
955         aros_shared_default="no"
956         case "$target_cpu" in
957             *i?86*)
958                 aros_target_cpu="i386"
959                 aros_object_format="elf_i386"
960                 aros_flavour="emulation"
961                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Di386"
962                 aros_shared_cflags=""
963                 aros_default_wbdepth=8
964                 gcc_target_cpu="i386"
965                 aros_target_cc="i386-aros-gcc"
966                 aros_target_ld="i386-aros-ld"
967                 aros_target_as="i386-aros-as"
968                 aros_target_ar="i386-aros-ar"
969                 aros_target_ranlib="i386-aros-ranlib"
970                 aros_target_nm="i386-aros-nm"
971                 aros_target_strip="i386-aros-strip"
972                 aros_target_objcopy="i386-aros-objcopy"
973                 aros_target_objdump="i386-aros-objdump"
974                 ;;
975             *)
976                 AC_MSG_ERROR("Unknown CPU for Mingw32 -- $target_cpu")
977                 ;;
978         esac
979         if test $host_os = "cygwin"; then
980                 aros_kernel_cflags="-mno-cygwin"
981         fi
982     ;;
983     pp*)
984         aros_target_arch="pp"
985         aros_shared_default="no"
986         case "$target_cpu" in
987             *m68k*)
988                 aros_target_cpu="m68k"
989                 aros_object_format="m68kelf"
990                 aros_flavour="palmnative"
991                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
992                 aros_kernel_ldflags=""
993                 aros_default_wbwidth=160
994                 aros_default_wbheight=160
995                 aros_default_wbdepth=1
996                 aros_target_ar_flags="cru"
997                 aros_compiler_libs="-lgcc1"
998                 aros_shared_default=no
999                 aros_shared_cflags="-fpic"
1000                 aros_shared_aflags=""
1001                 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1002                 aros_kernel_ldflags="-Wl,-rpath,./lib"
1003                 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug  $aros_messages_debug -mc68000 -Wa,-mc68000"
1004                 aros_debug_aflags=""
1005                 aros_debug_ldflags="$aros_symbols_debug"
1006                 aros_mungwall_debug="0"
1007                 aros_modules_debug="0"
1008                 gcc_target_cpu="mc68000"
1009                 ignore_undefined_symbols="-ius"
1010                 ;;
1011            *)
1012                 AC_MSG_ERROR("Unknown CPU for PalmPilot -- $target_cpu")
1013                 ;;
1014         esac
1015         ;;
1017     mac*)
1018         aros_target_arch="mac"
1019         aros_shared_default="no"
1020         case "$target_cpu" in
1021             *m68k*)
1022                 aros_target_cpu="m68k"
1023                 aros_object_format="m68kelf"
1024                 aros_flavour="mac68knative"
1025                 aros_target_mkdep="$aros_target_mkdep -D__GNUC__ -Dm68k"
1026                 aros_default_wbwidth=512
1027                 aros_default_wbheight=384
1028                 aros_default_wbdepth=8
1029                 aros_target_ar_flags="cru"
1030                 aros_compiler_libs="-lgcc1"
1031                 aros_shared_default=no
1032                 aros_shared_cflags="-fpic"
1033                 aros_shared_aflags=""
1034                 aros_shared_ldflags="-Wl,-rpath,./lib -shared"
1035                 aros_kernel_ldflags="-Wl,-rpath,./lib"
1036                 aros_debug_cflags="-Wall -Werror-implicit-function-declaration $aros_symbols_debug  $aros_messages_debug -mc68000"
1037                 aros_debug_aflags=""
1038                 aros_debug_ldflags="$aros_symbols_debug"
1039                 aros_mungwall_debug="0"
1040                 aros_modules_debug="0"
1041                 gcc_target_cpu="mc68000"
1042                 ignore_undefined_symbols="-ius"
1043                 ;;
1044            *)
1045                 AC_MSG_ERROR("Unknown CPU for Mac68k -- $target_cpu")
1046                 ;;
1047         esac
1048         ;;
1050     *)
1051         AC_MSG_ERROR([Unsupported target architecture $target])
1052         ;;
1053 esac
1055 AC_MSG_CHECKING([Where to download sourcecode for external ports])
1056 AC_ARG_WITH(portssources,AC_HELP_STRING([--with-portssources=DIR],[Where to download sourcecode for external ports]),with_portssrcdir=$withval,with_portssrcdir="default")
1057 if test "$with_portssrcdir" = "default"; then
1058     AROS_PORTSSRCDIR="$AROS_BUILDDIR/bin/Sources"
1059 else
1060     AROS_PORTSSRCDIR="$with_portssrcdir"
1062 AC_MSG_RESULT($AROS_PORTSSRCDIR)
1064 AC_MSG_CHECKING([which bootloader to use])
1065 AC_ARG_WITH(bootloader,AC_HELP_STRING([--with-bootloader=NAME],[Use a specific bootloader]),target_bootloader=$withval,target_bootloader=$target_bootloader)
1066 if test "$target_bootloader" = "none"; then
1067     aros_target_bootloader=""
1068 else
1069     aros_target_bootloader="$target_bootloader"
1071 AC_MSG_RESULT($target_bootloader)
1073 # Check LZO when compiling the grub2 bootloader on i386/x86_64.
1074 aros_liblzo_check="no"
1075 case "$aros_target_bootloader" in
1076     grub2*)
1077     case "$target_cpu" in
1078         *i?86*)
1079         aros_liblzo_check="yes"
1080         ;;
1081         *x86_64*)
1082         aros_liblzo_check="yes"  
1083         ;;
1084         *)
1085         ;;
1086     esac
1087   
1088     ;;
1089    *)
1090     ;;
1091 esac
1093 if test "$aros_liblzo_check" = "yes"; then
1094     # There are three possibilities. LZO version 2 installed with the name
1095     # liblzo2, with the name liblzo, and LZO version 1.  
1096     AC_CHECK_LIB(lzo2, __lzo_init_v2, [LIBLZO="-llzo2"],  
1097     AC_CHECK_LIB(lzo, __lzo_init_v2, [LIBLZO="-llzo"],
1098                 AC_CHECK_LIB(lzo, __lzo_init2, [LIBLZO="-llzo"],
1099                 AC_MSG_ERROR([LZO library version 1.02 or later is required]))))
1101     AC_SUBST(LIBLZO)
1102     LIBS="$LIBS $LIBLZO"
1103     AC_CHECK_FUNC(lzo1x_999_compress, ,
1104                 [AC_MSG_ERROR([LZO1X-999 must be enabled])])
1106     # LZO version 2 uses lzo/lzo1x.h, while LZO version 1 uses lzo1x.h.
1107     AC_CHECK_HEADERS(lzo/lzo1x.h lzo1x.h)
1110 AC_MSG_CHECKING([which GUI Theme to use])
1111 AC_ARG_WITH(theme,AC_HELP_STRING([--with-theme=NAME],[Use a specific GUI Theme]),target_guitheme=$withval,target_guitheme="default")
1112 if test "$target_guitheme" = "default"; then
1113     aros_target_guitheme="Ice"
1114 else
1115     aros_target_guitheme="$target_guitheme"
1117 AC_MSG_RESULT($aros_target_guitheme)
1119 # Find out if we are cross-compiling (ie. if we can't use the host compiler
1120 # for target code)
1121 cross_compiling=no
1122 if test "$aros_host_cpu" != "$aros_target_cpu" ; then
1123     cross_compiling=yes
1125 if test "$aros_host_arch" == "darwin" ; then
1126     cross_compiling=yes
1129 # Set prefix for target compiler etc. if we're cross-compiling
1130 # (should possibly be earlier but needs to be after AC_PROG_CC)
1131 if test "$cross_compiling" = "yes" ; then
1132     target_tool_prefix=${target_cpu}-elf-
1133     CC=${target_tool_prefix}gcc
1136 #-----------------------------------------------------------------------------
1138 # Disable pointer-signedness warnings if the compiler recognises the option
1140 AC_MSG_CHECKING([whether ${CC} accepts -Wno-pointer-sign])
1141 save_cflags="$CFLAGS"
1142 CFLAGS="$CFLAGS -Wno-pointer-sign"
1143 AC_TRY_COMPILE(,, use_no_sign_warning="yes", use_no_sign_warning="no")
1144 AC_MSG_RESULT($use_no_sign_warning)
1145 if test "x-$use_no_sign_warning" = "x-yes" ; then
1146     aros_config_cflags="$aros_config_cflags -Wno-pointer-sign"
1148 CFLAGS="$save_cflags"
1150 #-----------------------------------------------------------------------------
1152 # Find all the tools we need to compile. This could be cross-compiling
1153 # though! If that is the case we use the GNU form of the target and
1154 # simply add this to the front of the binary name. This is rather simple,
1155 # but it should work under most circumstances.
1157 # The default tools are to use the same as the host, but only if the
1158 # host and target CPU are the same. With GCC this is normally enough.
1161 aros_cc_pre=""
1162 aros_shared_ld="$aros_host_ld"
1164 aros_target_mkdep="$aros_host_mkdep"
1165 aros_target_incl_def="$aros_host_incl"
1167 AC_PATH_PROG(aros_kernel_cc,$CC)
1169 # The default tools executables to be linked to.
1170 if test "$aros_target_cc" != ""; then
1171     AC_PATH_PROG(aros_target_cc,$aros_target_cc)
1172     AROS_REQUIRED(gcc,$aros_target_cc)
1174 if test "$aros_target_ld" != ""; then
1175     AC_PATH_PROG(aros_target_ld,$aros_target_ld)
1176     AROS_REQUIRED(ld,$aros_target_ld)
1179 if test "$crosstools" != "yes"; then
1180     AROS_TOOL_TARGET(aros_target_as_ln,as,$aros_target_as)
1181     AROS_REQUIRED(as,$aros_target_as_ln)
1182     AROS_TOOL_TARGET(aros_kernel_ld,ld,$aros_kernel_ld)
1183     AROS_REQUIRED(ld,$aros_kernel_ld)
1184     AROS_TOOL_TARGET(aros_target_ar_ln,ar,$aros_target_ar)
1185     AROS_REQUIRED(ar,$aros_target_ar_ln)
1186     AROS_TOOL_TARGET(aros_target_nm_ln,nm,$aros_target_nm)
1187     AROS_REQUIRED(nm,$aros_target_nm_ln)
1188     AROS_TOOL_TARGET(aros_target_objcopy_ln,objcopy,$aros_target_objcopy)
1189     AROS_REQUIRED(objcopy,$aros_target_objcopy_ln)
1190     AROS_TOOL_TARGET(aros_target_objdump_ln,objdump,$aros_target_objdump)
1191     AROS_REQUIRED(objdump,$aros_target_objdump_ln)
1192     AROS_TOOL_TARGET(aros_target_ranlib_ln,ranlib,$aros_target_ranlib)
1193     AROS_REQUIRED(ranlib,$aros_target_ranlib_ln)
1194     AROS_TOOL_TARGET(aros_target_strip_ln,strip,$aros_target_strip)
1195     AROS_REQUIRED(strip,$aros_target_strip_ln)
1198 aros_hostcfg_dir="bin/${aros_host_arch}-${aros_host_cpu}/gen/config"
1199 aros_targetcfg_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/config"
1200 aros_inc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/AROS/Development/include/aros"
1201 aros_gendir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen"
1202 aros_geninc_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/include/aros"
1203 aros_tools_dir="bin/${aros_host_arch}-${aros_host_cpu}/tools"
1204 aros_scripts_dir="bin/${aros_target_arch}-${aros_target_cpu}${aros_target_suffix}/gen/scripts"
1206 # aros_cc_pre is a variable that is added to the front of the compiler name
1207 # in the generated aros-gcc shell script. We need this to enable the cache
1208 # to work across cleaned builds. Also, support DISTCC using the correct
1209 # environment variable.
1212 if test "x${DISTCC}" != "x" ; then
1213     if test "x${CCACHE}" != "x" ; then
1214         aros_cc_pre="env CCACHE_PREFIX=${DISTCC} ${CCACHE} "
1215     else
1216         aros_cc_pre="${DISTCC} "
1217     fi
1218 else
1219     if test "x${CCACHE}" != "x" ; then
1220         aros_cc_pre="${CCACHE} "
1221     fi
1224 prefix="${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros"
1226 AC_SUBST(aros_target_nostdinc_cflags,-nostdinc)
1227 AC_SUBST(aros_target_nostartup_ldflags,-nostartfiles)
1228 AC_SUBST(aros_target_nix_ldflags,-nix)
1229 AC_SUBST(aros_target_detach_ldflags,-detach)
1230 AC_SUBST(aros_target_nostdlib_ldflags,-nostdlib)
1232 # Target tools
1233 if test "$aros_target_cc" = ""; then
1234     orig_target_cc=$aros_kernel_cc
1235 else
1236     orig_target_cc=$aros_target_cc
1238 if test "$aros_target_ld" = ""; then
1239     orig_target_ld=$aros_kernel_ld
1240 else
1241     orig_target_ld=$aros_target_ld
1243 if test "$GCC" = "yes"; then
1244     aros_target_cc_path=`$orig_target_cc -print-search-dirs | grep "programs: =" | cut -c 12-`
1246 aros_target_cc="${prefix}-gcc"
1247 aros_target_as="${prefix}-as"
1248 aros_target_ld="${prefix}-ld"
1249 aros_target_ar="${prefix}-ar $aros_target_ar_flags"
1250 aros_target_objcopy=${prefix}-objcopy
1251 aros_target_objdump=${prefix}-objdump
1252 aros_target_ranlib="${prefix}-ranlib $aros_target_ranlib_flags"
1253 aros_target_nm="${prefix}-nm $aros_target_nm_flags"
1254 aros_kernel_nm="${prefix}-nm"
1255 aros_target_strip=${prefix}-strip
1257 # Find the system include path. We can suggest that an alternative is
1258 # used if we don't get it correct. The default is to use /usr/include.
1259 # Which is set in the aros_target_incl_def variable.
1261 AC_ARG_ENABLE(includes,
1262 AC_HELP_STRING([--enable-includes=dir],[Alternative system include directory]),
1263 [aros_target_incl=$enable_includes], [aros_target_incl=$aros_target_incl_def])
1265 dnl find out about the target cc's include path
1266 AC_MSG_CHECKING([for the target compiler's include path])
1267 if test "$aros_target_cc_includes" = "" ; then
1268     #try to guess where the directory is
1269     aros_target_cc_includes=`dirname \`${aros_kernel_cc} -print-libgcc-file-name\``/include
1270     if ! test -d $aros_target_cc_includes; then
1271         #the directory doesn't exist, we need to do some more work
1272         aros_target_cc_includes=${PWD}/${aros_gendir}/cc_include
1273         
1274         #these are the headers we're looling for
1275         headers="limits.h mmintrin.h stdbool.h syslimits.h float.h \
1276                  stddef.h xmmintrin.h iso646.h stdarg.h unwind.h   \
1277                  zutil.h"
1279         dirs=
1280         for h in $headers; do
1281             #which other headers each of the above headers needs?
1282             deps=$(echo "#include <$h>" | \
1283                    $aros_host_cc -E -M - 2>/dev/null | \
1284                    sed 's/^.*://; s/\\$/ /g; s/[[ \t]]\+/ /g')
1285             
1286             #copy all the needed headers to a directory beneath gendir
1287             for d in $deps; do
1288                 h=$(basename $d)
1289                 dir=${aros_target_cc_includes}$(echo $(dirname $d) | \
1290                                                 sed -n "s,^.*/include\(/.*\),\1,p")
1291                 ! test -d $dir && mkdir -p $dir
1292                 ! test -f $dir/$h && { cp $d $dir; chmod u+w $dir/$h; }
1293             done
1294         done        
1295     fi
1297 AC_MSG_RESULT($aros_target_cc_includes)
1300 # For GCC < 4.0 -I- is used for giving the search path for '#include "..."'
1301 # On GCC >= 4.0 -iquote should be used
1304 save_cc="$CC"
1305 save_cflags="$CFLAGS"
1306 CC="$aros_kernel_cc"
1307 CFLAGS="-iquote."
1308 AC_MSG_CHECKING([whether ${CC} accepts -iquote])
1309 AC_TRY_COMPILE(,, has_iquote="yes", has_iquote="no")
1310 AC_MSG_RESULT($has_iquote)
1311 if test "x-$has_iquote" = "x-yes" ; then
1312     aros_cflags_iquote=-iquote
1313     aros_cflags_iquote_end=
1314 else
1315     aros_cflags_iquote=-I
1316     aros_cflags_iquote_end=-I-
1318 CC="$save_cc"
1319 CFLAGS="$save_cflags"
1321 AC_SUBST(aros_cflags_iquote)
1322 AC_SUBST(aros_cflags_iquote_end)
1325 dnl Check if user specified --with-resolution=XRESxYRESxDEPTH
1326 AC_MSG_CHECKING([for default resolution of WBScreen])
1327 AC_ARG_WITH(resolution,AC_HELP_STRING([--with-resolution=XRESxYRESxDEPTH],[Default resolution of the initial WorkbenchScreen]),resolution=$withval,resolution=none)
1328 # We require an argument, so map --with/--without ("yes"/"no") to "none" specified
1329 if test "$resolution" = "yes" ; then
1330     resolution="none"
1332 if test "$resolution" = "no" ; then
1333     resolution="none"
1335 if test "$resolution" != "none" ; then
1336     aros_default_wbwidth=`echo $resolution | cut -d'x' -f1`
1337     aros_default_wbheight=`echo $resolution | cut -d'x' -f2`
1338     aros_default_wbdepth=`echo $resolution | cut -d'x' -f3`
1340 AC_MSG_RESULT($aros_default_wbwidth x $aros_default_wbheight x $aros_default_wbdepth)
1341 aros_cv_default_wbwidth=$aros_default_wbwidth
1342 aros_cv_default_wbheight=$aros_default_wbheight
1343 aros_cv_default_wbdepth=$aros_default_wbdepth
1345 dnl See if the user wants the BOCHS hack for native flavour
1346 AC_MSG_CHECKING([if bochs hack is enabled])
1347 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")
1348 if test "$bochs_hack" = "yes" ; then
1349     aros_bochs_hack="1"
1351 AC_MSG_RESULT($bochs_hack)
1353 dnl See if the user wants the serial debug output for native flavour
1354 AC_MSG_CHECKING([if serial debug is enabled])
1355 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)
1356 if test "$aros_serial_debug" = 0 ; then
1357     serial_debug_forced=""
1358     if test "$serial_debug" = "yes" ; then
1359         serial_debug="2"
1360     fi
1361     if test "$serial_debug" = "no" ; then
1362         serial_debug="none"
1363     fi
1364 else
1365     serial_debug_forced="(forced)"
1366     serial_debug=$aros_serial_debug
1368 if test "$serial_debug" != "none" ; then
1369     aros_serial_debug=$serial_debug
1370     AC_MSG_RESULT($serial_debug_forced on port $serial_debug)
1371 else
1372     AC_MSG_RESULT(no)
1375 dnl See if the user wants the palm debug output hack for palm native flavour
1376 AC_MSG_CHECKING([if palm debug hack is enabled])
1377 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")
1378 if test "$palm_debug_hack" = "yes" ; then
1379     aros_palm_debug_hack="1"
1381 AC_MSG_RESULT($palm_debug_hack)
1384 dnl See if the user wants nesting supervisor activated for unix flavour
1385 AC_MSG_CHECKING([if nesting supervisor support is enabled])
1386 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")
1387 if test "$nesting_supervisor" = "yes" ; then
1388     aros_nesting_supervisor="1"
1390 AC_MSG_RESULT($nesting_supervisor)
1393 dnl things specifically required for hosted flavours
1394 if test "x-$aros_flavour" = "x-emulation" -o "x-$aros_flavour" = "x-emulcompat" ; then
1396     if test "x-$aros_host_arch" != "x-darwin" ; then
1397       dnl some kind of dynamic library access system is required for hostlib.resource
1398       AC_CHECK_FUNC(dlopen, have_dl="yes", have_dl="no")
1399       if test "x-$have_dl" = "x-no" ; then
1400           AC_CHECK_LIB(dl, dlopen, [have_dl="yes"
1401                                     aros_host_ldflags="$aros_host_ldflags -ldl"],
1402                                     have_dl="no")
1403       fi
1404       if test "x-$have_dl" = "x-no" ; then
1405           AC_MSG_ERROR([dlopen() dynamic linker functions not available])
1406       fi
1407     fi
1410     dnl x11 hidd
1411     AC_ARG_ENABLE(x11_hidd, AC_HELP_STRING([--enable-x11-hidd],
1412                                            [build X11 hidd for hosted (default=auto)]),
1413                                            x11_hidd="$enableval",
1414                                            x11_hidd="auto")
1415     case "x-$x11_hidd" in
1416         x-yes|x-no|x-auto)                 ;;
1417         *)                 x11_hidd="auto" ;;
1418     esac
1420     dnl they want it
1421     if test "x-$x11_hidd" != "x-no" ; then
1423         dnl find x11 stuff
1424         AC_PATH_X
1426         x_cflags=
1427         for path in $x_libraries
1428         do
1429             x_cflags="$x_cflags -L$path"
1430         done
1432         for path in $x_includes
1433         do
1434             x_cflags="$x_cflags -I$path"
1435         done
1436         
1437         if test "x-$no_x" = "x-yes" ; then
1439             dnl didn't find it
1440             if test "x-$x11_hidd" != "x-auto" ; then
1441                 dnl and they explicitly asked for it, bail out
1442                 AC_MSG_ERROR([X11 libs/headers not found, cannot build X11 hidd as requested])
1443             fi
1444         
1445         else
1446             dnl found it, setup the metatarget
1447             x11_hidd_target=kernel-x11gfx
1450             dnl setup shared memory extensions
1451             AC_ARG_ENABLE(x11_shm, AC_HELP_STRING([--enable-x11-shm],
1452                                                   [use X11 shared memory (default=auto)]),
1453                                                   x11_hidd_shm="$enableval",
1454                                                   x11_hidd_shm="auto")
1455             case "x-$x11_hidd_shm" in
1456                 x-yes|x-no|x-auto)                     ;;
1457                 *)                 x11_hidd_shm="auto" ;;
1458             esac
1460             have_xshm=no
1462             dnl they want it
1463             if test "x-$x11_hidd_shm" != "x-no" ; then
1465                 dnl system shm headers
1466                 AC_CHECK_HEADERS(sys/ipc.h)
1467                 AC_CHECK_HEADERS(sys/shm.h)
1469                 dnl got them
1470                 if test "x-$ac_cv_header_sys_ipc_h" = "x-yes" -a "x-$ac_cv_header_sys_shm_h" = "x-yes" ; then
1472                     dnl make sure X libs have shm functions
1473                     save_cflags="$CFLAGS"
1474                     CFLAGS="$CFLAGS $x_cflags"
1475                     AC_CHECK_LIB(Xext, XShmQueryExtension, have_xshm=yes)
1476                     CFLAGS="$save_cflags"
1477                 fi
1478             fi
1480             dnl detection done, prepare output
1481             if test "x-$have_xshm" = "x-yes" ; then
1482                 dnl we can do shm
1483                 DO_XSHM_SUPPORT="1"
1484             elif test "x-$x11_hidd_shm" = "x-yes" ; then
1485                 dnl they explicitly asked for it, but we can't do it
1486                 AC_MSG_ERROR([X11 has no support for shared memory, cannot enable it as requested])
1487             else
1488                 dnl otherwise just disable it
1489                 DO_XSHM_SUPPORT="0"
1490             fi
1492             
1493             dnl setup vidmode (fullscreen) extensions
1494             AC_ARG_ENABLE(x11_vidmode, AC_HELP_STRING([--enable-x11-vidmode],
1495                                                       [use X11 vidmode extension (default=auto)]),
1496                                                       x11_hidd_vidmode="$enableval",
1497                                                       x11_hidd_vidmode="auto")
1498             case "x-$x11_hidd_vidmode" in
1499                 x-yes|x-no|x-auto)                         ;;
1500                 *)                 x11_hidd_vidmode="auto" ;;
1501             esac
1503             have_vidmode=no
1505             dnl they want it
1506             if test "x-$x11_hidd_vidmode" != "x-no" ; then
1508                 dnl make sure X libs have vidmode functions
1509                 save_cflags="$CFLAGS"
1510                 CFLAGS="$CFLAGS $x_cflags"
1511                 AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryExtension, have_vidmode=yes)
1512                 CFLAGS="$save_cflags"
1513             fi
1515             dnl detection done, prepare output
1516             if test "x-$have_vidmode" = "x-yes" ; then
1517                 dnl we can do vidmode
1518                 DO_VIDMODE_SUPPORT="1"
1519             elif test "x-$x11_hidd_vidmode" = "x-yes" ; then
1520                 dnl they explicitly asked for it, but we can't do it
1521                 AC_MSG_ERROR([X11 vidmode extension not available, cannot enable it as requested])
1522             else
1523                 dnl otherwise just disable it
1524                 DO_VIDMODE_SUPPORT="0"
1525             fi
1526         fi
1528         aros_host_x11_includes=$x_includes 
1529         aros_host_x11_libdirs=$x_libraries
1530     fi
1533     dnl sdl hidd
1534     AC_ARG_ENABLE(sdl_hidd, AC_HELP_STRING([--enable-sdl-hidd],
1535                                            [build SDL hidd for hosted (default=auto)]),
1536                                            sdl_hidd="$enableval",
1537                                            sdl_hidd="auto")
1538     case "x-$sdl_hidd" in
1539         x-yes|x-no|x-auto)                 ;;
1540         *)                 sdl_hidd="auto" ;;
1541     esac
1543     dnl they want it
1544     if test "x-$sdl_hidd" != "x-no" ; then
1546         dnl find sdl
1547         AM_PATH_SDL([1.2.10], have_sdl="yes", have_sdl="no")
1549         if test "x-$have_sdl" != "x-yes" ; then
1551             dnl didn't find it
1552             if test "x-$sdl_hidd" != "x-auto" ; then
1553                 dnl and they explicitly asked for it, bail out
1554                 AC_MSG_ERROR([SDL libs/headers not found, cannot build SDL hidd as requested])
1555             fi
1557         else
1558             dnl found it, setup the metatarget
1559             sdl_hidd_target=kernel-hidd-sdl
1560             aros_host_sdl_cflags=SDL_CFLAGS
1561             aros_host_sdl_libs=SDL_LIBS
1562         fi
1563     fi
1568 dnl See if the user wants dbus.library
1569 AC_MSG_CHECKING([if building of dbus.library is enabled])
1570 AC_ARG_ENABLE(dbus,AC_HELP_STRING([--enable-dbus],[Enable DBUS support via dbus.library (default=no)]),dbus="yes",dbus="no")
1571 if test "$dbus" = "yes" ; then
1572     ENABLE_DBUS=1
1573     DBUS_CFLAGS=`pkg-config --cflags dbus-1`
1574     DBUS_LIBFLAGS=`pkg-config --libs dbus-1`
1575     KERNEL_DBUS_KOBJ=kernel-dbus-kobj
1576     KERNEL_DBUS_INCLUDES=kernel-dbus-includes
1577 else
1578     ENABLE_DBUS=0
1580 AC_MSG_RESULT($dbus)
1583 dnl --------------------------------------------------------------------
1584 dnl Configuration Output Section
1585 dnl --------------------------------------------------------------------
1587 # Generic
1588 AC_SUBST(aros_arch)
1589 AC_SUBST(aros_cpu)
1590 AC_SUBST(aros_flavour)
1591 AC_SUBST(aros_flavour_uc)
1592 AC_SUBST(AROS_BUILDDIR)
1593 AC_SUBST(SRCDIR)
1594 AC_SUBST(AROS_PORTSSRCDIR)
1596 # Host related
1597 AC_SUBST(aros_cc_pre)
1598 AC_SUBST(aros_host_strip)
1599 AC_SUBST(aros_host_arch)
1600 AC_SUBST(aros_host_cpu)
1601 AC_SUBST(aros_host_cc)
1602 AC_SUBST(aros_host_ar)
1603 AC_SUBST(aros_host_ranlib)
1604 AC_SUBST(aros_host_ld)
1605 AC_SUBST(aros_host_make)
1606 AC_SUBST(aros_host_cflags)
1607 AC_SUBST(aros_host_ldflags)
1608 AC_SUBST(aros_host_debug)
1609 AC_SUBST(aros_host_mkdep)
1610 AC_SUBST(aros_host_mkargs)
1611 AC_SUBST(aros_host_exe_suffix)
1612 AC_SUBST(aros_host_lib_suffix)
1613 AC_SUBST(aros_tools_dir)
1614 AC_SUBST(aros_host_aclocal)
1615 AC_SUBST(aros_host_autoconf)
1616 AC_SUBST(aros_host_autoheader)
1617 AC_SUBST(aros_host_automake)
1619 # Target Related
1620 AC_SUBST(aros_target_guitheme)
1621 AC_SUBST(aros_target_bootloader)
1622 AC_SUBST(aros_target_arch)
1623 AC_SUBST(aros_target_cpu)
1624 AC_SUBST(aros_target_variant)
1625 AC_SUBST(aros_target_suffix)
1626 AC_SUBST(aros_target_incl)
1627 AC_SUBST(aros_target_ar)
1628 AC_SUBST(aros_target_ranlib)
1629 AC_SUBST(aros_kernel_nm)
1630 AC_SUBST(orig_target_cc)
1631 AC_SUBST(aros_target_cc)
1632 AC_SUBST(aros_kernel_cc)
1633 AC_SUBST(aros_target_as)
1634 AC_SUBST(orig_target_ld)
1635 AC_SUBST(aros_target_ld)
1636 AC_SUBST(aros_kernel_ld)
1637 AC_SUBST(aros_target_cc_includes)
1638 AC_SUBST(aros_target_cc_path)
1639 AC_SUBST(aros_target_objdump)
1640 AC_SUBST(aros_target_objcopy)
1641 AC_SUBST(aros_target_strip)
1642 AC_SUBST(aros_target_nm)
1643 AC_SUBST(aros_shared_default)
1644 AC_SUBST(aros_shared_ld)
1645 AC_SUBST(aros_object_format)
1646 AC_SUBST(aros_compiler_libs)
1648 AC_SUBST(aros_config_cflags)
1649 AC_SUBST(aros_config_aflags)
1650 AC_SUBST(aros_config_ldflags)
1652 AC_SUBST(aros_shared_cflags)
1653 AC_SUBST(aros_shared_aflags)
1654 AC_SUBST(aros_shared_ldflags)
1655 AC_SUBST(aros_kernel_cflags)
1656 AC_SUBST(aros_kernel_ldflags)
1657 AC_SUBST(aros_debug_cflags)
1658 AC_SUBST(aros_debug_aflags)
1659 AC_SUBST(aros_debug_ldflags)
1660 AC_SUBST(aros_target_genmap)
1661 AC_SUBST(aros_target_strip_flags)
1663 # Graphics Related
1664 AC_SUBST(x11_hidd_target)
1665 AC_SUBST(sdl_hidd_target)
1667 AC_SUBST(aros_default_wbwidth)
1668 AC_SUBST(aros_default_wbheight)
1669 AC_SUBST(aros_default_wbdepth)
1670 AC_SUBST(DO_XSHM_SUPPORT)
1671 AC_SUBST(DO_VIDMODE_SUPPORT)
1673 AC_SUBST(aros_host_x11_includes)
1674 AC_SUBST(aros_host_x11_libdirs)
1675 AC_SUBST(aros_host_sdl_cflags)
1676 AC_SUBST(aros_host_sdl_libs)
1678 # Native version related
1679 AC_SUBST(aros_bochs_hack)
1680 AC_SUBST(aros_serial_debug)
1682 # Palm native version related
1683 AC_SUBST(aros_palm_debug_hack)
1685 # Unix/Hosted version related
1686 AC_SUBST(aros_nesting_supervisor)
1688 # DBUS related
1689 AC_SUBST(ENABLE_DBUS)
1690 AC_SUBST(DBUS_CFLAGS)
1691 AC_SUBST(DBUS_LIBFLAGS)
1692 AC_SUBST(KERNEL_DBUS_KOBJ)
1693 AC_SUBST(KERNEL_DBUS_INCLUDES)
1695 # Debug related
1696 AC_SUBST(aros_debug)
1697 AC_SUBST(aros_mungwall_debug)
1698 AC_SUBST(aros_stack_debug)
1699 AC_SUBST(aros_modules_debug)
1701 # Collect-aros stuff: "-ius" to ignore undefined symbols
1702 AC_SUBST(ignore_undefined_symbols)
1704 # C compiler related
1705 AC_SUBST(gcc_target_cpu)
1707 dnl Prepare for output, make up all the generated patches
1708 case "$aros_flavour" in
1709 emulation)      aros_flavour_uc="AROS_FLAVOUR_EMULATION"
1710                 aros_flavour="emulation" ;;
1711 emulcompat)     aros_flavour_uc="(AROS_FLAVOUR_EMULATION|AROS_FLAVOUR_BINCOMPAT)"
1712                 aros_flavour="emulation" ;;
1713 standalone)     aros_flavour_uc="AROS_FLAVOUR_STANDALONE"
1714                 aros_flavour="standalone";;
1715 native)         aros_flavour_uc="AROS_FLAVOUR_NATIVE"
1716                 aros_flavour="native" ;;
1717 nativecompat)   aros_flavour_uc="(AROS_FLAVOUR_NATIVE|AROS_FLAVOUR_BINCOMPAT)"
1718                 aros_flavour="native" ;;
1719 linklib)        aros_flavour_uc="AROS_FLAVOUR_LINKLIB"
1720                 aros_flavour="linklib" ;;
1721 palmnative)     aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1722                 aros_flavour="palmnative" ;;
1723 mac68knative)   aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_EMULATION)"
1724                 aros_flavour="mac68knative" ;;
1725 ppcnative)      aros_flavour_uc="(AROS_FLAVOUR_STANDALONE|AROS_FLAVOUR_BINCOMPAT)"
1726                 aros_flavour="ppcnative" ;;
1727 esac
1729 if test ! -d ${aros_inc_dir} ; then
1730     ${MKDIR} ${aros_inc_dir}
1732 if test ! -d ${aros_geninc_dir} ; then
1733     ${MKDIR} ${aros_geninc_dir}
1735 if test ! -d ${aros_hostcfg_dir} ; then
1736     ${MKDIR} ${aros_hostcfg_dir}
1738 if test ! -d ${aros_targetcfg_dir} ; then
1739     ${MKDIR} ${aros_targetcfg_dir}
1741 if test ! -d ${aros_tools_dir} ; then
1742     ${MKDIR} ${aros_tools_dir}
1744 if test ! -d ${aros_scripts_dir} ; then
1745     ${MKDIR} ${aros_scripts_dir}
1748 AC_CONFIG_HEADERS(${aros_geninc_dir}/host-conf.h:config/host-conf.h.in)
1750 AC_CONFIG_COMMANDS([compiler_executable],
1751     [
1752         prefix=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}
1753         mkdir -p $prefix
1754         prefix="${prefix}/${aros_target_cpu}-aros"
1755         prefix2=${PWD}/${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros
1757         echo ${prefix}
1758         echo ${prefix2}
1759         chmod a+x ${prefix2}-gcc ${prefix2}-ld
1761         ln -sf ${prefix2}-gcc          ${prefix}-gcc
1762         ln -sf ${prefix2}-ld           ${prefix}-ld
1764         ln -sf $aros_target_as_ln      ${prefix}-as
1765         ln -sf $aros_target_nm_ln      ${prefix}-nm
1766         ln -sf $aros_target_ar_ln      ${prefix}-ar
1767         ln -sf $aros_target_ranlib_ln  ${prefix}-ranlib
1768         ln -sf $aros_target_objcopy_ln ${prefix}-objcopy
1769         ln -sf $aros_target_objdump_ln ${prefix}-objdump
1770         ln -sf $aros_target_strip_ln   ${prefix}-strip
1772         ln -sf $aros_target_as_ln      ${prefix2}-as
1773         ln -sf $aros_target_nm_ln      ${prefix2}-nm
1774         ln -sf $aros_target_ar_ln      ${prefix2}-ar
1775         ln -sf $aros_target_ranlib_ln  ${prefix2}-ranlib
1776         ln -sf $aros_target_objcopy_ln ${prefix2}-objcopy
1777         ln -sf $aros_target_objdump_ln ${prefix2}-objdump
1778         ln -sf $aros_target_strip_ln   ${prefix2}-strip
1779     ],
1780     [
1781         aros_tools_dir=${aros_tools_dir}
1782         aros_target_cpu=${aros_target_cpu}
1783         aros_target_arch=${aros_target_arch}
1784         aros_target_suffix=${aros_target_suffix}
1785         aros_target_nm_ln=${aros_target_nm_ln}
1786         aros_target_as_ln=${aros_target_as_ln}
1787         aros_target_ar_ln=${aros_target_ar_ln}
1788         aros_target_ranlib_ln=${aros_target_ranlib_ln}
1789         aros_target_objdump_ln=${aros_target_objdump_ln}
1790         aros_target_objcopy_ln=${aros_target_objcopy_ln}
1791         aros_target_strip_ln=${aros_target_strip_ln}
1792     ]
1794 AC_CONFIG_COMMANDS([genshared_executable],
1795     [chmod a+x ${aros_scripts_dir}/genshared],
1796     [aros_scripts_dir=${aros_scripts_dir}]
1798 AC_CONFIG_COMMANDS([genmf_executable],
1799     [chmod a+x ${aros_tools_dir}/genmf.py],
1800     [aros_tools_dir=${aros_tools_dir}]
1802 AC_CONFIG_COMMANDS([adflib_myaros.conf_executable],
1803     [chmod a+x tools/adflib/myconf.aros]
1806 AC_CONFIG_FILES(
1807     Makefile
1808     rom/mmakefile
1809     config/make.cfg
1810     ${aros_inc_dir}/config.h:config/config.h.in
1811     ${aros_geninc_dir}/config.h:config/config.h.in
1812     ${aros_hostcfg_dir}/host.cfg:config/host.cfg.in
1813     ${aros_targetcfg_dir}/target.cfg:config/target.cfg.in
1814     mmake.config
1815     ${aros_targetcfg_dir}/make.defaults:config/make.defaults.in
1816     ${aros_targetcfg_dir}/specs:config/specs.in
1817     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-gcc:scripts/aros-gcc.in
1818     ${aros_tools_dir}/${aros_target_cpu}-${aros_target_arch}${aros_target_suffix}-aros-ld:scripts/aros-ld.in
1819     ${aros_scripts_dir}/genshared:compiler/c_lib/source/lib_source/genshared.in
1820     ${aros_tools_dir}/genmf.py:tools/genmf/genmf.py
1821     tools/adflib/myconf.aros
1822     tools/collect-aros/env.h
1825 AC_OUTPUT
1827 dnl This is in order to not define SHARED_CFLAGS sometimes
1828 dnl We don't always do aros_shared_ar, aros_shared_cflags
1830 #XXX compatability...
1831 aros_shared_ar="$aros_shared_ld $aros_shared_ldflags -o"
1833 if test -n "$aros_shared_cflags" ; then
1834     echo "SHARED_CFLAGS := $aros_shared_cflags" >> ${aros_hostcfg_dir}/host.cfg
1835     echo "SHARED_AR := $aros_shared_ar" >> ${aros_hostcfg_dir}/host.cfg