From b0944c78b074a8110bd98e060415d0e8f38a7f65 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Thu, 1 Aug 2013 08:51:16 +0200 Subject: [PATCH] More work towards hybrid support * All packaging architecture dependent variables do now have a respective suffix and are set up for each configured packaging architecture, save for the kernel and boot loader variables, which are still only set up for the primary architecture. For convenience TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++, and TARGET_LIBSTDC++ are set to the respective values for the primary packaging architecture by default. * Introduce a set of MultiArch* rules to help with building targets for multiple packaging architectures. Generally the respective targets are (additionally) gristed with the packaging architecture. For libraries the additional grist is usually omitted for the primary architecture (e.g. libroot.so and libroot.so for x86_gcc2/x86 hybrid), so that Jamfiles for targets built only for the primary architecture don't need to be changed. * Add multi-arch build support for all targets needed for the stage 1 cross devel package as well as for libbe (untested). --- Jamfile | 7 +- Jamrules | 37 +- build/jam/ArchitectureRules | 777 ++++++++++++++++ build/jam/BeOSRules | 8 +- build/jam/BootRules | 9 +- build/jam/BuildFeatures | 19 +- build/jam/BuildSetup | 841 ++++-------------- build/jam/FileRules | 3 +- build/jam/HaikuPackages | 18 +- build/jam/HeadersRules | 19 +- build/jam/HelperRules | 20 +- build/jam/KernelRules | 11 +- build/jam/LocaleRules | 18 +- build/jam/MainBuildRules | 57 +- build/jam/MiscRules | 46 +- build/jam/OptionalPackages | 16 +- build/jam/OverriddenJamRules | 68 +- build/jam/PackageRules | 17 +- build/jam/RepositoryRules | 26 +- build/jam/UserBuildConfig.ReadMe | 2 +- build/jam/board/beagle/BoardSetup | 8 +- build/jam/board/neo_freerunner/BoardSetup | 6 +- build/jam/board/overo/BoardSetup | 8 +- build/jam/board/raspberry_pi/BoardSetup | 6 +- build/jam/board/sam460ex/BoardSetup | 5 +- build/jam/board/verdex/BoardSetup | 7 +- build/jam/images/HaikuImage | 3 +- build/jam/images/HaikuImageBootstrap | 3 +- build/jam/packages/Haiku | 5 +- build/jam/packages/HaikuBootstrap | 5 +- build/jam/packages/HaikuCrossDevel | 44 +- build/jam/packages/HaikuDevel | 19 +- src/add-ons/disk_systems/bfs/Jamfile | 2 +- src/add-ons/disk_systems/intel/Jamfile | 2 +- src/add-ons/disk_systems/ntfs/Jamfile | 2 +- .../input_server/devices/keyboard/Jamfile | 2 +- .../input_server/methods/canna/lib/Jamfile | 5 +- .../input_server/methods/canna/rk/Jamfile | 5 +- src/add-ons/kernel/bus_managers/pci/Jamfile | 3 +- .../drivers/network/3com/dev/mii/Jamfile | 4 +- .../drivers/network/3com/dev/xl/Jamfile | 4 +- .../network/attansic_l1/dev/mii/Jamfile | 4 +- .../network/broadcom440x/dev/mii/Jamfile | 3 +- .../network/broadcom570x/dev/bge/Jamfile | 3 +- .../network/broadcom570x/dev/mii/Jamfile | 3 +- .../drivers/network/dec21xxx/dev/dc/Jamfile | 3 +- .../drivers/network/dec21xxx/dev/de/Jamfile | 3 +- .../drivers/network/dec21xxx/dev/mii/Jamfile | 3 +- .../drivers/network/ipro100/dev/fxp/Jamfile | 3 +- .../network/jmicron2x0/dev/mii/Jamfile | 3 +- .../network/marvell_yukon/dev/mii/Jamfile | 3 +- .../drivers/network/nforce/dev/mii/Jamfile | 3 +- .../kernel/drivers/network/pegasus/Jamfile | 3 +- .../drivers/network/rdc/dev/mii/Jamfile | 3 +- .../drivers/network/rtl8139/dev/mii/Jamfile | 5 +- .../drivers/network/rtl81xx/dev/mii/Jamfile | 5 +- .../network/syskonnect/dev/mii/Jamfile | 3 +- .../drivers/network/via_rhine/dev/mii/Jamfile | 3 +- .../drivers/network/vt612x/dev/mii/Jamfile | 3 +- .../kernel/file_systems/bindfs/Jamfile | 2 +- .../kernel/file_systems/packagefs/Jamfile | 2 +- src/add-ons/kernel/file_systems/ramfs/Jamfile | 2 +- .../kernel/file_systems/reiserfs/Jamfile | 2 +- .../userlandfs/kernel_add_on/Jamfile | 2 +- .../inbound_filters/match_header/Jamfile | 2 +- .../inbound_filters/notifier/Jamfile | 2 +- .../inbound_filters/spam_filter/Jamfile | 2 +- .../inbound_protocols/imap/Jamfile | 2 +- .../inbound_protocols/pop3/Jamfile | 2 +- .../outbound_filters/fortune/Jamfile | 2 +- .../outbound_protocols/smtp/Jamfile | 2 +- src/add-ons/media/media-add-ons/mixer/Jamfile | 2 +- .../media/media-add-ons/multi_audio/Jamfile | 2 +- src/add-ons/screen_savers/butterfly/Jamfile | 2 +- src/add-ons/screen_savers/debugnow/Jamfile | 2 +- src/add-ons/screen_savers/flurry/Jamfile | 2 +- src/add-ons/screen_savers/glife/Jamfile | 2 +- src/add-ons/screen_savers/gravity/Jamfile | 4 +- src/add-ons/screen_savers/haiku/Jamfile | 2 +- src/add-ons/screen_savers/icons/Jamfile | 2 +- src/add-ons/screen_savers/ifs/Jamfile | 2 +- src/add-ons/screen_savers/leaves/Jamfile | 2 +- src/add-ons/screen_savers/message/Jamfile | 2 +- src/add-ons/screen_savers/simpleclock/Jamfile | 2 +- src/add-ons/screen_savers/spider/Jamfile | 2 +- src/add-ons/tracker/zipomatic/Jamfile | 2 +- src/add-ons/translators/bmp/Jamfile | 2 +- src/add-ons/translators/exr/Jamfile | 2 +- .../translators/exr/openexr/half/Jamfile | 10 +- .../translators/exr/openexr/ilmimf/Jamfile | 124 +-- .../translators/exr/openexr/imath/Jamfile | 20 +- src/add-ons/translators/gif/Jamfile | 2 +- src/add-ons/translators/hpgs/Jamfile | 2 +- src/add-ons/translators/hvif/Jamfile | 2 +- src/add-ons/translators/icns/Jamfile | 2 +- src/add-ons/translators/ico/Jamfile | 2 +- src/add-ons/translators/jpeg/Jamfile | 2 +- src/add-ons/translators/jpeg2000/Jamfile | 2 +- src/add-ons/translators/pcx/Jamfile | 2 +- src/add-ons/translators/png/Jamfile | 4 +- src/add-ons/translators/ppm/Jamfile | 2 +- src/add-ons/translators/raw/Jamfile | 2 +- src/add-ons/translators/rtf/Jamfile | 4 +- src/add-ons/translators/sgi/Jamfile | 2 +- src/add-ons/translators/shared/Jamfile | 1 - src/add-ons/translators/stxt/Jamfile | 2 +- src/add-ons/translators/tga/Jamfile | 2 +- src/add-ons/translators/tiff/Jamfile | 2 +- src/add-ons/translators/webp/Jamfile | 2 +- src/add-ons/translators/wonderbrush/Jamfile | 2 +- src/apps/3dmov/Jamfile | 4 +- src/apps/aboutsystem/Jamfile | 2 +- src/apps/activitymonitor/Jamfile | 2 +- src/apps/bootmanager/Jamfile | 2 +- src/apps/bsnow/Jamfile | 2 +- src/apps/cdplayer/Jamfile | 2 +- src/apps/charactermap/Jamfile | 2 +- src/apps/clock/Jamfile | 2 +- src/apps/codycam/Jamfile | 2 +- src/apps/debugger/Jamfile | 5 +- src/apps/deskbar/Jamfile | 2 +- src/apps/deskcalc/Jamfile | 2 +- src/apps/devices/Jamfile | 2 +- src/apps/diskprobe/Jamfile | 2 +- src/apps/diskusage/Jamfile | 2 +- src/apps/drivesetup/Jamfile | 2 +- src/apps/expander/Jamfile | 2 +- src/apps/firstbootprompt/Jamfile | 2 +- src/apps/fontdemo/Jamfile | 2 +- src/apps/glteapot/Jamfile | 2 +- src/apps/haiku3d/Jamfile | 2 +- src/apps/icon-o-matic/Jamfile | 2 +- src/apps/installedpackages/Jamfile | 2 +- src/apps/installer/Jamfile | 2 +- src/apps/launchbox/Jamfile | 2 +- src/apps/login/Jamfile | 2 +- src/apps/magnify/Jamfile | 2 +- src/apps/mail/Jamfile | 2 +- src/apps/mandelbrot/Jamfile | 2 +- src/apps/mediaconverter/Jamfile | 2 +- src/apps/mediaplayer/Jamfile | 2 +- src/apps/midiplayer/Jamfile | 2 +- src/apps/musiccollection/Jamfile | 2 +- src/apps/networkstatus/Jamfile | 2 +- src/apps/overlayimage/Jamfile | 2 +- src/apps/packageinstaller/Jamfile | 2 +- src/apps/packagemanager/Jamfile | 2 +- src/apps/pairs/Jamfile | 2 +- src/apps/people/Jamfile | 2 +- src/apps/poorman/Jamfile | 2 +- src/apps/powerstatus/Jamfile | 2 +- src/apps/processcontroller/Jamfile | 2 +- src/apps/pulse/Jamfile | 2 +- src/apps/screenshot/Jamfile | 4 +- src/apps/serialconnect/Jamfile | 2 +- src/apps/showimage/Jamfile | 2 +- src/apps/soundrecorder/Jamfile | 2 +- src/apps/stylededit/Jamfile | 2 +- src/apps/sudoku/Jamfile | 2 +- src/apps/switcher/Jamfile | 2 +- src/apps/terminal/Jamfile | 2 +- src/apps/text_search/Jamfile | 2 +- src/apps/tracker/Jamfile | 2 +- src/apps/tv/Jamfile | 2 +- src/apps/webpositive/Jamfile | 2 +- src/apps/webwatch/Jamfile | 2 +- src/apps/workspaces/Jamfile | 2 +- src/bin/Jamfile | 9 +- src/bin/bash/Jamfile | 14 +- src/bin/bash/builtins/Jamfile | 5 +- src/bin/bash/lib/glob/Jamfile | 5 +- src/bin/bash/lib/readline/Jamfile | 5 +- src/bin/bash/lib/sh/Jamfile | 5 +- src/bin/bash/lib/tilde/Jamfile | 5 +- src/bin/coreutils/lib/Jamfile | 7 +- src/bin/coreutils/src/Jamfile | 19 +- src/bin/debug/strace/Jamfile | 3 +- src/bin/desklink/Jamfile | 2 +- src/bin/diffutils/lib/Jamfile | 5 +- src/bin/diffutils/src/Jamfile | 5 +- src/bin/findutils/find/Jamfile | 5 +- src/bin/findutils/gnulib/lib/Jamfile | 5 +- src/bin/findutils/lib/Jamfile | 5 +- src/bin/findutils/locate/Jamfile | 5 +- src/bin/findutils/xargs/Jamfile | 5 +- src/bin/gawk/Jamfile | 5 +- src/bin/gawk/intl/Jamfile | 5 +- src/bin/gdb/gdb/Jamfile | 6 +- src/bin/gdb/libiberty/Jamfile | 5 +- src/bin/gdb/readline/Jamfile | 5 +- src/bin/less/Jamfile | 5 +- src/bin/listdev/Jamfile | 3 +- src/bin/screen_blanker/Jamfile | 2 +- src/kits/Jamfile | 38 +- src/kits/app/Jamfile | 85 +- src/kits/bluetooth/Jamfile | 2 +- src/kits/debug/Jamfile | 41 +- src/kits/interface/Jamfile | 231 ++--- src/kits/locale/Jamfile | 28 +- src/kits/mail/Jamfile | 2 +- src/kits/opengl/Jamfile | 2 +- src/kits/shared/Jamfile | 3 +- src/kits/storage/Jamfile | 160 ++-- src/kits/storage/mime/Jamfile | 40 +- src/kits/support/Jamfile | 52 +- src/kits/textencoding/Jamfile | 2 +- src/kits/tracker/Jamfile | 2 +- src/libs/bsd/Jamfile | 37 +- src/libs/glut/Jamfile | 2 +- src/libs/iconv/Jamfile | 5 +- src/libs/posix_error_mapper/Jamfile | 37 +- src/libs/stdc++/Jamfile | 12 +- src/libs/stdc++/current/Jamfile | 31 +- src/libs/stdc++/legacy/Jamfile | 357 ++++---- src/preferences/appearance/Jamfile | 2 +- src/preferences/backgrounds/Jamfile | 2 +- src/preferences/bluetooth/Jamfile | 2 +- src/preferences/cpufrequency/Jamfile | 2 +- src/preferences/datatranslations/Jamfile | 2 +- src/preferences/deskbar/Jamfile | 2 +- src/preferences/filetypes/Jamfile | 2 +- src/preferences/fonts/Jamfile | 2 +- src/preferences/keyboard/Jamfile | 2 +- src/preferences/keymap/Jamfile | 2 +- src/preferences/locale/Jamfile | 2 +- src/preferences/mail/Jamfile | 2 +- src/preferences/media/Jamfile | 2 +- src/preferences/mouse/Jamfile | 2 +- src/preferences/network/Jamfile | 2 +- src/preferences/notifications/Jamfile | 2 +- src/preferences/printers/Jamfile | 2 +- src/preferences/screen/Jamfile | 2 +- src/preferences/screensaver/Jamfile | 2 +- src/preferences/shortcuts/Jamfile | 2 +- src/preferences/sounds/Jamfile | 2 +- src/preferences/time/Jamfile | 2 +- src/preferences/touchpad/Jamfile | 2 +- src/preferences/tracker/Jamfile | 2 +- src/preferences/virtualmemory/Jamfile | 2 +- src/servers/debug/Jamfile | 5 +- src/servers/mail/Jamfile | 2 +- src/servers/mount/Jamfile | 2 +- src/servers/notification/Jamfile | 2 +- src/servers/print/Jamfile | 2 +- src/servers/print_addon/Jamfile | 2 +- src/servers/registrar/Jamfile | 2 +- src/servers/syslog_daemon/Jamfile | 2 +- src/system/boot/Jamfile | 4 +- src/system/boot/platform/atari_m68k/Jamfile | 2 +- src/system/glue/Jamfile | 22 +- src/system/glue/arch/Jamfile | 3 - src/system/glue/arch/arm/Jamfile | 14 +- src/system/glue/arch/m68k/Jamfile | 14 +- src/system/glue/arch/mipsel/Jamfile | 14 +- src/system/glue/arch/ppc/Jamfile | 14 +- src/system/glue/arch/x86/Jamfile | 14 +- src/system/glue/arch/x86_64/Jamfile | 14 +- src/system/kernel/Jamfile | 15 +- src/system/kernel/arch/x86/Jamfile | 7 +- src/system/kernel/lib/arch/x86/Jamfile | 4 +- src/system/kernel/lib/arch/x86_64/Jamfile | 4 +- src/system/libroot/Jamfile | 172 ++-- src/system/libroot/add-ons/icu/Jamfile | 58 +- src/system/libroot/os/Jamfile | 91 +- src/system/libroot/os/arch/arm/Jamfile | 33 +- src/system/libroot/os/arch/m68k/Jamfile | 41 +- src/system/libroot/os/arch/mipsel/Jamfile | 45 +- src/system/libroot/os/arch/ppc/Jamfile | 45 +- src/system/libroot/os/arch/x86/Jamfile | 51 +- src/system/libroot/os/arch/x86_64/Jamfile | 35 +- src/system/libroot/posix/Jamfile | 67 +- src/system/libroot/posix/arch/arm/Jamfile | 30 +- src/system/libroot/posix/arch/m68k/Jamfile | 31 +- src/system/libroot/posix/arch/mipsel/Jamfile | 31 +- src/system/libroot/posix/arch/ppc/Jamfile | 31 +- src/system/libroot/posix/arch/x86/Jamfile | 33 +- src/system/libroot/posix/arch/x86_64/Jamfile | 33 +- src/system/libroot/posix/crypt/Jamfile | 22 +- src/system/libroot/posix/glibc/Jamfile | 8 +- src/system/libroot/posix/glibc/arch/Jamfile | 4 - .../libroot/posix/glibc/arch/arm/Jamfile | 37 +- .../libroot/posix/glibc/arch/m68k/Jamfile | 83 +- .../libroot/posix/glibc/arch/ppc/Jamfile | 74 +- .../libroot/posix/glibc/arch/x86/Jamfile | 179 ++-- .../libroot/posix/glibc/arch/x86_64/Jamfile | 99 ++- src/system/libroot/posix/glibc/ctype/Jamfile | 29 +- .../libroot/posix/glibc/extensions/Jamfile | 34 +- src/system/libroot/posix/glibc/iconv/Jamfile | 41 +- src/system/libroot/posix/glibc/libio/Jamfile | 243 ++--- src/system/libroot/posix/glibc/locale/Jamfile | 54 +- src/system/libroot/posix/glibc/misc/Jamfile | 50 +- src/system/libroot/posix/glibc/regex/Jamfile | 12 +- .../libroot/posix/glibc/stdio-common/Jamfile | 99 ++- src/system/libroot/posix/glibc/stdlib/Jamfile | 81 +- src/system/libroot/posix/glibc/string/Jamfile | 23 +- src/system/libroot/posix/glibc/wcsmbs/Jamfile | 57 +- src/system/libroot/posix/locale/Jamfile | 29 +- src/system/libroot/posix/malloc/Jamfile | 26 +- src/system/libroot/posix/malloc_debug/Jamfile | 18 +- src/system/libroot/posix/pthread/Jamfile | 39 +- src/system/libroot/posix/signal/Jamfile | 66 +- src/system/libroot/posix/stdio/Jamfile | 69 +- src/system/libroot/posix/stdlib/Jamfile | 60 +- src/system/libroot/posix/string/Jamfile | 96 +- .../libroot/posix/string/arch/arm/Jamfile | 19 +- .../libroot/posix/string/arch/m68k/Jamfile | 19 +- .../libroot/posix/string/arch/mipsel/Jamfile | 19 +- .../libroot/posix/string/arch/ppc/Jamfile | 19 +- .../libroot/posix/string/arch/x86/Jamfile | 14 +- .../libroot/posix/string/arch/x86_64/Jamfile | 14 +- src/system/libroot/posix/sys/Jamfile | 58 +- src/system/libroot/posix/time/Jamfile | 46 +- src/system/libroot/posix/unistd/Jamfile | 84 +- src/system/libroot/posix/wchar/Jamfile | 105 ++- src/system/runtime_loader/Jamfile | 60 +- src/system/runtime_loader/arch/arm/Jamfile | 12 +- src/system/runtime_loader/arch/m68k/Jamfile | 12 +- src/system/runtime_loader/arch/ppc/Jamfile | 12 +- src/system/runtime_loader/arch/x86/Jamfile | 11 +- src/system/runtime_loader/arch/x86_64/Jamfile | 10 +- .../add-ons/kernel/drivers/audio/Jamfile | 2 - .../kernel/file_systems/bfs/bfs_shell/Jamfile | 2 +- .../userlandfs/r5/src/kernel_add_on/Jamfile | 2 +- src/tests/kits/game/chart/Jamfile | 2 +- .../kits/net/preflet/InterfacesAddOn/Jamfile | 2 +- src/tests/kits/net/preflet/Jamfile | 2 +- src/tests/kits/opengl/glinfo/Jamfile | 2 +- src/tests/servers/app/playground/Jamfile | 2 +- src/tests/servers/app/regularapps/Jamfile | 2 +- src/tests/servers/registrar/Jamfile | 2 +- src/tests/system/benchmarks/libMicro/Jamfile | 137 +-- src/tests/system/kernel/cache/Jamfile | 2 +- src/tests/system/kernel/unit/Jamfile | 2 +- src/tests/system/libroot/posix/Jamfile | 3 +- src/tools/Jamfile | 1 + src/tools/gensyscalls/Jamfile | 234 ++--- .../makebootable/platform/bios_ia32/Jamfile | 2 +- src/tools/translation/inspector/Jamfile | 2 +- 338 files changed, 4208 insertions(+), 3303 deletions(-) create mode 100644 build/jam/ArchitectureRules delete mode 100644 src/system/glue/arch/Jamfile delete mode 100644 src/system/libroot/posix/glibc/arch/Jamfile diff --git a/Jamfile b/Jamfile index 52a143e670..395586a57d 100644 --- a/Jamfile +++ b/Jamfile @@ -4,7 +4,12 @@ NotFile doc_files ; Depends files : doc_files ; # Prepare the optional build features before parsing the Jamfile tree. -include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ; + } +} # Include packages that are required by all images. if ! $(HAIKU_BOOTSTRAP_BUILD) { diff --git a/Jamrules b/Jamrules index accfe49a2f..4ce01e8ddc 100644 --- a/Jamrules +++ b/Jamrules @@ -29,42 +29,8 @@ if ! $(buildConfig) { LOCATE on BuildConfig = $(HAIKU_BUILD_OUTPUT_DIR) ; include BuildConfig ; -# Set simplified variables for primary architecture. +# set HAIKU_PACKAGING_ARCH, the primary packaging architecture HAIKU_PACKAGING_ARCH = $(HAIKU_PACKAGING_ARCHS[1]) ; -local variable ; -for variable in - HAIKU_GCC_RAW_VERSION - HAIKU_GCC_MACHINE - HAIKU_GCC_LIB_DIR - HAIKU_GCC_HEADERS_DIR - HAIKU_GCC_LIBGCC - HAIKU_GCC_LIBGCC_OBJECTS - HAIKU_CPU - HAIKU_STATIC_LIBSTDC++ - HAIKU_SHARED_LIBSTDC++ - HAIKU_STATIC_LIBSUPC++ - HAIKU_SHARED_LIBSUPC++ - HAIKU_C++_HEADERS_DIR - HAIKU_KERNEL_LIBGCC - HAIKU_KERNEL_LIBSUPC++ - HAIKU_BOOT_LIBGCC - HAIKU_BOOT_LIBSUPC++ - HAIKU_AR - HAIKU_CC - HAIKU_LD - HAIKU_OBJCOPY - HAIKU_RANLIB - HAIKU_ELFEDIT - HAIKU_STRIP - HAIKU_CPPFLAGS - HAIKU_CCFLAGS - HAIKU_C++FLAGS - HAIKU_LDFLAGS - HAIKU_ARFLAGS - HAIKU_UNARFLAGS - HAIKU_USE_GCC_GRAPHITE { - $(variable) = $($(variable)_$(HAIKU_PACKAGING_ARCH)) ; -} # The build setup and rules are neatly organized in several files. Include # them now. Start with the side-effect-less rules, since they are the most @@ -73,6 +39,7 @@ for variable in # optional user-defined UserBuildConfig is included thereafter. include [ FDirName $(HAIKU_BUILD_RULES_DIR) HelperRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) MathRules ] ; +include [ FDirName $(HAIKU_BUILD_RULES_DIR) ArchitectureRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) BeOSRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) LocaleRules ] ; include [ FDirName $(HAIKU_BUILD_RULES_DIR) CommandLineArguments ] ; diff --git a/build/jam/ArchitectureRules b/build/jam/ArchitectureRules new file mode 100644 index 0000000000..29282c246f --- /dev/null +++ b/build/jam/ArchitectureRules @@ -0,0 +1,777 @@ +rule ArchitectureSetup architecture +{ + # ArchitectureSetup ; + # + # Initializes all global packaging architecture dependent variables for the + # given packaging architecture. Also sets HAIKU_ARCH (to the primary + # architecture), if this is the first invocation of the rule, and adds + # the architecture to HAIKU_ARCHS, if not yet contained. + + # analyze GCC version + local gccVersion + = [ FAnalyzeGCCVersion HAIKU_GCC_RAW_VERSION_$(architecture) ] ; + HAIKU_GCC_VERSION_$(architecture) = $(gccVersion) ; + + # enable GCC -pipe option, if requested + local gccBaseFlags ; + if $(HAIKU_USE_GCC_PIPE) = 1 { + gccBaseFlags = -pipe ; + } + + # disable strict aliasing on anything newer than gcc 2 as it may lead to + # unexpected results. also disable the tree-vrp (value range propagation) + # optimization for now as with the current gcc4 version we are using this + # results in some broken code. + # TODO: remove the -fno-strict-aliasing option when all code has been + # analyzed/fixed with regard to aliasing. + # TODO: retest/remove the -fno-tree-vrp option as soon as we have updated + # our gcc4 compiler. See this discussion on some issues: + # http://www.freelists.org/post/haiku-development/hrev45320-Yet-another-nonobvious-effect-of-ftreevrp-optimization + if $(gccVersion[1]) >= 3 { + gccBaseFlags += -fno-strict-aliasing -fno-tree-vrp ; + } + + # disable array bounds warnings on gcc 4.6 or newer since they trigger + # too many false positives. Coverity does a better job of this kind of + # analysis anyways. + if $(gccVersion[1]) >= 4 { + gccBaseFlags += -Wno-array-bounds ; + } + + # activating graphite optimizations + if $(HAIKU_USE_GCC_GRAPHITE_$(architecture)) = 1 { + gccBaseFlags += -floop-interchange -ftree-loop-distribution + -floop-strip-mine -floop-block ; + } + HAIKU_GCC_BASE_FLAGS_$(architecture) = $(gccBaseFlags) ; + + # override gcc 2.95.3's header directory -- strictly necessary only when + # using the BeOS native compiler (since its headers are incompatible), but + # it doesn't harm for the cross-compiler either. + if $(gccVersion[1]) = 2 { + HAIKU_GCC_HEADERS_DIR_$(architecture) + = [ FDirName $(HAIKU_TOP) headers build gcc-2.95.3 ] ; + } + + # initial state for flags etc. + HAIKU_C++_$(architecture) ?= $(HAIKU_CC_$(architecture)) ; + HAIKU_LINK_$(architecture) = $(HAIKU_CC_$(architecture)) ; + HAIKU_LINKFLAGS_$(architecture) = $(gccBaseFlags) ; + + HAIKU_HDRS_$(architecture) = [ FStandardHeaders $(architecture) ] ; + HAIKU_CCFLAGS_$(architecture) += $(gccBaseFlags) -nostdinc ; + HAIKU_C++FLAGS_$(architecture) += $(gccBaseFlags) -nostdinc ; + + local cpu = $(HAIKU_CPU_$(architecture)) ; + switch $(cpu) { + case ppc : + HAIKU_DEFINES_$(architecture) += __POWERPC__ ; + + case arm : + HAIKU_DEFINES_$(architecture) += __ARM__ ; + + case x86 : + HAIKU_DEFINES_$(architecture) += __INTEL__ ; + + case m68k : + HAIKU_DEFINES_$(architecture) += __M68K__ ; + + case mipsel : + HAIKU_DEFINES_$(architecture) += __MIPSEL__ ; + + case * : + Exit "Currently unsupported target CPU:" $(cpu) ; + } + + # strip is required + if ! $(HAIKU_STRIP_$(architecture)) { + Exit "HAIKU_STRIP_$(architecture) not set. Please re-run configure." ; + } + + HAIKU_ARCH_$(architecture) = $(cpu) ; + HAIKU_ARCH ?= $(cpu) ; + # Set only, if not set yet. This way HAIKU_ARCH is set to the primary + # architecture. + if ! $(cpu) in $(HAIKU_ARCHS) { + HAIKU_ARCHS += $(cpu) ; + } + HAIKU_DEFINES_$(architecture) += ARCH_$(cpu) ; + + # directories + HAIKU_ARCH_OBJECT_DIR_$(architecture) + = [ FDirName $(HAIKU_OBJECT_BASE_DIR) $(architecture) ] ; + HAIKU_COMMON_DEBUG_OBJECT_DIR_$(architecture) + = [ FDirName $(HAIKU_ARCH_OBJECT_DIR_$(architecture)) common ] ; + HAIKU_DEBUG_0_OBJECT_DIR_$(architecture) + = [ FDirName $(HAIKU_ARCH_OBJECT_DIR_$(architecture)) release ] ; + + local level ; + for level in $(HAIKU_DEBUG_LEVELS[2-]) { + HAIKU_DEBUG_$(level)_OBJECT_DIR_$(architecture) + = [ FDirName $(HAIKU_ARCH_OBJECT_DIR_$(architecture)) + debug_$(level) ] ; + } + + # set variables for gcc header options + SetIncludePropertiesVariables HAIKU : _$(architecture) ; + + # assembler flags + HAIKU_ASFLAGS_$(architecture) = ; + + # C/C++ flags + if $(gccVersion[1]) >= 4 { + HAIKU_C++FLAGS_$(architecture) += -Wno-deprecated ; + } + + switch $(cpu) { + case x86* : + # Enable use of the gcc built-in atomic functions instead of + # atomic_*(). The former are inlined and have thus less overhead. + # They are not available with gcc 2, but the header will take care + # of that. + HAIKU_DEFINES_$(architecture) += B_USE_BUILTIN_ATOMIC_FUNCTIONS ; + } + + # warning flags + HAIKU_WARNING_CCFLAGS_$(architecture) + = -Wall -Wno-trigraphs -Wmissing-prototypes + -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar ; + HAIKU_WARNING_C++FLAGS_$(architecture) = -Wall -Wno-trigraphs + -Wno-ctor-dtor-privacy -Woverloaded-virtual -Wpointer-arith -Wcast-align + -Wsign-compare -Wno-multichar ; + + # debug flags + local debugFlags = -ggdb ; + + # debug 0: suppress asserts + HAIKU_DEBUG_0_CCFLAGS_$(architecture) = [ FDefines NDEBUG=$(NDEBUG) ] ; + HAIKU_DEBUG_0_C++FLAGS_$(architecture) = [ FDefines NDEBUG=$(NDEBUG) ] ; + + local level ; + for level in $(HAIKU_DEBUG_LEVELS[2-]) { + local flags = $(debugFlags) [ FDefines DEBUG=$(level) ] ; + HAIKU_DEBUG_$(level)_CCFLAGS_$(architecture) = $(flags) ; + HAIKU_DEBUG_$(level)_C++FLAGS_$(architecture) = $(flags) ; + } + + if $(gccVersion[1]) >= 3 { + # TODO: Temporary work-around. Should be defined in the compiler specs + HAIKU_LINKFLAGS_$(architecture) += -Xlinker --no-undefined ; + } else { + HAIKU_DEFINES_$(architecture) += _BEOS_R5_COMPATIBLE_ ; + } + + # private shared kernel/libroot headers + HAIKU_PRIVATE_SYSTEM_HEADERS_$(architecture) + = [ PrivateHeaders $(DOT) system system/arch/$(cpu) ] ; + + # Add some grist to the libgcc objects + HAIKU_GCC_LIBGCC_OBJECTS_$(architecture) + = $(HAIKU_GCC_LIBGCC_OBJECTS_$(architecture):G=libgcc!$(architecture)) ; + + # the C++ standard library + HAIKU_BUILD_SHARED_LIBSTDC++_$(architecture) = ; + if $(HAIKU_SHARED_LIBSTDC++_$(architecture)) { + HAIKU_LIBSTDC++_$(architecture) + = $(HAIKU_SHARED_LIBSTDC++_$(architecture)) ; + } else { + # no shared library available with the compiler -- build it + if $(gccVersion[1]) = 2 { + HAIKU_LIBSTDC++_$(architecture) = libstdc++.r4.so ; + } else { + HAIKU_LIBSTDC++_$(architecture) = <$(architecture)>libstdc++.so ; + } + HAIKU_SHARED_LIBSTDC++_$(architecture) + = $(HAIKU_LIBSTDC++_$(architecture)) ; + HAIKU_BUILD_SHARED_LIBSTDC++_$(architecture) = 1 ; + } + + # the C++ support (runtime) library + HAIKU_BUILD_SHARED_LIBSUPC++_$(architecture) = ; + if $(HAIKU_SHARED_LIBSUPC++_$(architecture)) { + HAIKU_LIBSUPC++_$(architecture) + = $(HAIKU_SHARED_LIBSUPC++_$(architecture)) ; + } else { + # no shared library available with the compiler -- build it for gcc 4 + if $(gccVersion[1]) != 2 { + HAIKU_SHARED_LIBSUPC++_$(architecture) + = <$(architecture)>libsupc++.so ; + HAIKU_BUILD_SHARED_LIBSUPC++_$(architecture) = 1 ; + } + + HAIKU_LIBSUPC++_$(architecture) + = $(HAIKU_SHARED_LIBSUPC++_$(architecture)) ; + } + + # library and executable glue code + local commonGlueCode = + init_term_dyn.o + crti.o + crtn.o + ; + HAIKU_LIBRARY_BEGIN_GLUE_CODE_$(architecture) = + crti.o + <$(architecture)>crtbegin.o + init_term_dyn.o + ; + HAIKU_LIBRARY_END_GLUE_CODE_$(architecture) = + <$(architecture)>crtend.o + crtn.o + ; + HAIKU_EXECUTABLE_BEGIN_GLUE_CODE_$(architecture) = + crti.o + <$(architecture)>crtbegin.o + start_dyn.o + init_term_dyn.o + ; + HAIKU_EXECUTABLE_END_GLUE_CODE_$(architecture) + = $(HAIKU_LIBRARY_END_GLUE_CODE_$(architecture)) ; + + SEARCH on <$(architecture)>crtbegin.o <$(architecture)>crtend.o + = $(HAIKU_GCC_LIB_DIR_$(architecture)) ; + + # init library name map + local i ; + for i in be bnetapi debug device game GL locale mail media midi midi2 + network opengl package root screensaver textencoding tracker + translation z { + HAIKU_LIBRARY_NAME_MAP_$(architecture)_$(i) = lib$(i).so ; + } + HAIKU_LIBRARY_NAME_MAP_$(architecture)_libstdc++ + = $(HAIKU_LIBSTDC++_$(architecture)) ; + HAIKU_LIBRARY_NAME_MAP_$(architecture)_libsupc++ + = $(HAIKU_LIBSUPC++_$(architecture)) ; + HAIKU_LIBRARY_NAME_MAP_$(architecture)_input_server + = input_server ; + HAIKU_LIBRARY_NAME_MAP_$(architecture)_localestub + = <$(architecture)>liblocalestub.a ; +} + + +rule KernelArchitectureSetup architecture +{ + # KernelArchitectureSetup ; + # + # Initializes the global kernel and boot loader related variables. Those + # don't have a packaging architecture suffix, since they are only set for + # the primary packaging architecture. is the primary + # packaging architecture (supplied for convenience). + + HAIKU_KERNEL_ARCH = $(HAIKU_ARCH) ; + + local gccVersion = $(HAIKU_GCC_VERSION_$(architecture)) ; + local cpu = $(HAIKU_CPU_$(architecture)) ; + + switch $(cpu) { + case ppc : + HAIKU_BOOT_PLATFORM ?= openfirmware ; + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - unused yet + + case arm : + HAIKU_BOOT_PLATFORM ?= u-boot ; + HAIKU_BOOT_BOARD ?= verdex ; + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; + # in kB (there is not really a floppy on the gumstix ;) ) + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - unused yet + + case x86 : + HAIKU_BOOT_PLATFORM = bios_ia32 ; + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB + + # yasm is required for target arch x86 + if ! $(HAIKU_YASM) { + Exit "HAIKU_YASM not set. Please re-run configure." ; + } + + case x86_64 : + # x86_64 completely shares the x86 bootloader. + HAIKU_BOOT_PLATFORM = bios_ia32 ; + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB + + # x86_64 kernel source is under arch/x86. + HAIKU_KERNEL_ARCH = x86 ; + + # yasm is required for target arch x86_64 + if ! $(HAIKU_YASM) { + Exit "HAIKU_YASM not set. Please re-run configure." ; + } + + case m68k : + HAIKU_BOOT_PLATFORM ?= atari_m68k ; + switch $(HAIKU_BOOT_PLATFORM) { + case atari_m68k : + { + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB + } + case amiga_m68k : + { + # for now we have trouble reading from double-sided images + HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 880 ; # in kB + } + } + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 260 ; # in kB + + case mipsel : + # RouterBOARD firmware (ELF image over TFTP) + HAIKU_BOOT_PLATFORM = routerboard_mipsel ; + # offset in floppy image (>= sizeof(haiku_loader)) + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB + + case * : + Exit "Currently unsupported target CPU:" $(cpu) ; + } + + # Include embedded board-specific file. + if $(HAIKU_BOOT_BOARD) { + include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD) + BoardSetup ] ; + } + + # private kernel headers to be used when compiling kernel code + HAIKU_PRIVATE_KERNEL_HEADERS = + [ PrivateHeaders $(DOT) kernel libroot shared + kernel/boot/platform/$(HAIKU_BOOT_PLATFORM) ] + [ ArchHeaders $(HAIKU_KERNEL_ARCH) ] + [ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR_$(architecture)) system + kernel ] + $(HAIKU_PRIVATE_SYSTEM_HEADERS_$(architecture)) + ; + + # C/C++ flags + local gccBaseFlags = $(HAIKU_GCC_BASE_FLAGS_$(architecture)) + -finline -fno-builtin ; + + if $(gccVersion[1]) >= 4 { + gccBaseFlags += -ffreestanding ; + } + + local g++BaseFlags = $(gccBaseFlags) -fno-exceptions ; + + if $(gccVersion[1]) >= 3 { + g++BaseFlags += -fno-use-cxa-atexit ; + } + + HAIKU_KERNEL_CCFLAGS = $(HAIKU_CCFLAGS_$(architecture)) $(gccBaseFlags) ; + HAIKU_KERNEL_C++FLAGS = $(HAIKU_C++FLAGS_$(architecture)) $(g++BaseFlags) ; + HAIKU_BOOT_CCFLAGS = $(HAIKU_CCFLAGS_$(architecture)) $(gccBaseFlags) ; + HAIKU_BOOT_C++FLAGS = $(HAIKU_C++FLAGS_$(architecture)) $(g++BaseFlags) ; + HAIKU_BOOT_LINKFLAGS = ; + + HAIKU_KERNEL_PIC_CCFLAGS = -fno-pic ; + HAIKU_KERNEL_PIC_LINKFLAGS = ; + HAIKU_KERNEL_ADDON_LINKFLAGS = ; + + switch $(cpu) { + case ppc : + # Build a position independent PPC kernel. We need to be able to + # relocate the kernel, since the virtual address space layout at + # boot time is not fixed. + HAIKU_KERNEL_PIC_CCFLAGS = -fPIE ; + HAIKU_KERNEL_PIC_LINKFLAGS = -shared -fPIE ; + + case m68k : + # We don't want to have to handle emulating missing FPU opcodes for + # 040 and 060 in the kernel. + HAIKU_KERNEL_CCFLAGS += -m68020-60 ; + HAIKU_KERNEL_C++FLAGS += -m68020-60 ; + + case x86 : + HAIKU_KERNEL_CCFLAGS += -march=pentium ; + HAIKU_KERNEL_C++FLAGS += -march=pentium ; + + case x86_64 : + # Kernel lives in the top 2GB of the address space, use kernel code + # model. + HAIKU_KERNEL_PIC_CCFLAGS += -mcmodel=kernel ; + + # Disable the red zone, which cannot be used in kernel code due to + # interrupts, and always enable the frame pointer so stack traces + # are correct. + HAIKU_KERNEL_CCFLAGS += -mno-red-zone -fno-omit-frame-pointer ; + HAIKU_KERNEL_C++FLAGS += -mno-red-zone -fno-omit-frame-pointer ; + HAIKU_KERNEL_PIC_LINKFLAGS += -z max-page-size=0x1000 ; + HAIKU_KERNEL_ADDON_LINKFLAGS += -z max-page-size=0x1000 ; + + # Bootloader is 32-bit. + HAIKU_BOOT_LINKFLAGS += -m elf_i386_haiku ; + HAIKU_BOOT_CCFLAGS += -m32 -march=pentium ; + HAIKU_BOOT_C++FLAGS += -m32 -march=pentium ; + } + + # warning flags + HAIKU_KERNEL_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes + -Wno-multichar ; + HAIKU_KERNEL_WARNING_C++FLAGS = -Wall -Wno-trigraphs -Wno-multichar ; + + # debug flags + local level ; + for level in $(HAIKU_DEBUG_LEVELS) { + local flags = $(HAIKU_DEBUG_FLAGS) [ FDefines DEBUG=$(level) ] ; + HAIKU_KERNEL_DEBUG_$(level)_CCFLAGS + = $(HAIKU_DEBUG_$(level)_CCFLAGS_$(architecture)) ; + HAIKU_KERNEL_DEBUG_$(level)_C++FLAGS + = $(HAIKU_DEBUG_$(level)_C++FLAGS_$(architecture)) ; + } + + # defines + HAIKU_KERNEL_DEFINES += _KERNEL_MODE ; + + HAIKU_DEFINES_$(architecture) + += BOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; + # TODO: That doesn't need to be a general define. It's just needed for + # compiling (part of) the boot loader. + + # kernel add-on glue code + HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = <$(architecture)>crtbegin.o + haiku_version_glue.o ; + HAIKU_KERNEL_ADDON_END_GLUE_CODE + = $(HAIKU_GCC_LIBGCC_$(architecture)) <$(architecture)>crtend.o ; +} + + +rule ArchitectureSetupWarnings architecture +{ + # ArchitectureSetupWarnings ; + # + # Sets up compiler warnings and error flags for various subdirectories for + # the given packaging architecture. + + local cpu = $(HAIKU_CPU_$(architecture)) ; + switch $(cpu) { + case arm : + return ; + # we use #warning as placeholders for things to write... + case m68k : + return ; + # we use #warning as placeholders for things to write... + case mipsel : + return ; + # we use #warning as placeholders for things to write... + } + + + # enable -Werror for certain parts of the source tree + HAIKU_WERRORFLAGS = ; + local gccVersion = $(HAIKU_GCC_VERSION_$(architecture)) ; + if $(gccVersion[1]) >= 4 { + # -Wuninitialized gives too many false positives. + HAIKU_WERRORFLAGS = -Wno-error=uninitialized ; + + # TODO: remove the -Wno-unused-but-set-variable option + HAIKU_WERRORFLAGS += -Wno-unused-but-set-variable ; + } + + HAIKU_WERROR_ARCH = $(architecture) ; + + rule EnableWerror dirTokens : scope { + AppendToConfigVar TARGET_WARNING_CCFLAGS_$(HAIKU_WERROR_ARCH) + : HAIKU_TOP $(dirTokens) + : -Werror $(HAIKU_WERRORFLAGS) : $(scope) ; + AppendToConfigVar TARGET_WARNING_C++FLAGS_$(HAIKU_WERROR_ARCH) + : HAIKU_TOP $(dirTokens) + : -Werror $(HAIKU_WERRORFLAGS) : $(scope) ; + } + + # Work-around for GCC 2 problem -- despite -Wno-multichar it reports + # multichar warnings in headers/private/kernel/debugger_keymaps.h included + # by src/system/kernel/arch/x86/arch_debug_console.cpp. + if $(gccVersion[1]) = 2 { + local file = arch_debug_console.o ; + TARGET_WARNING_C++FLAGS_$(architecture) on $(file) + = [ on $(file) return $(TARGET_WARNING_C++FLAGS_$(architecture)) ] ; + } + + EnableWerror src add-ons accelerants 3dfx ; + EnableWerror src add-ons accelerants ati ; + EnableWerror src add-ons accelerants common ; + EnableWerror src add-ons accelerants et6x00 ; +# EnableWerror src add-ons accelerants intel_extreme ; +# EnableWerror src add-ons accelerants matrox ; + EnableWerror src add-ons accelerants neomagic ; +# EnableWerror src add-ons accelerants nvidia ; + EnableWerror src add-ons accelerants nvidia_gpgpu ; +# EnableWerror src add-ons accelerants radeon ; +# EnableWerror src add-ons accelerants radeon_hd ; + EnableWerror src add-ons accelerants s3 ; + EnableWerror src add-ons accelerants skeleton ; + EnableWerror src add-ons accelerants vesa ; + EnableWerror src add-ons accelerants via ; + EnableWerror src add-ons accelerants vmware ; + EnableWerror src add-ons bluetooth ; + EnableWerror src add-ons decorators ; + EnableWerror src add-ons disk_systems ; + EnableWerror src add-ons input_server devices ; +# EnableWerror src add-ons input_server filters ; +# EnableWerror src add-ons input_server methods ; + EnableWerror src add-ons kernel bluetooth ; +# EnableWerror src add-ons kernel bus_managers acpi ; + EnableWerror src add-ons kernel bus_managers agp_gart ; + EnableWerror src add-ons kernel bus_managers ata ; + EnableWerror src add-ons kernel bus_managers config_manager ; +# EnableWerror src add-ons kernel bus_managers firewire ; + EnableWerror src add-ons kernel bus_managers isa ; + EnableWerror src add-ons kernel bus_managers pci ; +# EnableWerror src add-ons kernel bus_managers ps2 ; # gcc2 + EnableWerror src add-ons kernel bus_managers scsi ; + EnableWerror src add-ons kernel bus_managers usb ; + EnableWerror src add-ons kernel busses agp_gart ; + EnableWerror src add-ons kernel busses ata ; + EnableWerror src add-ons kernel busses scsi ; + EnableWerror src add-ons kernel busses usb ; + EnableWerror src add-ons kernel console ; + EnableWerror src add-ons kernel cpu ; +# EnableWerror src add-ons kernel debugger ; # gcc2 +# EnableWerror src add-ons kernel drivers audio ; + EnableWerror src add-ons kernel drivers bluetooth ; + EnableWerror src add-ons kernel drivers bus ; + EnableWerror src add-ons kernel drivers common ; + EnableWerror src add-ons kernel drivers disk ; + EnableWerror src add-ons kernel drivers dvb ; +# EnableWerror src add-ons kernel drivers graphics ; +# EnableWerror src add-ons kernel drivers input ; + EnableWerror src add-ons kernel drivers joystick ; + EnableWerror src add-ons kernel drivers midi ; + EnableWerror src add-ons kernel drivers misc ; +# EnableWerror src add-ons kernel drivers network ; + EnableWerror src add-ons kernel drivers ports ; +# EnableWerror src add-ons kernel drivers power ; + EnableWerror src add-ons kernel drivers printer ; + EnableWerror src add-ons kernel drivers random ; + EnableWerror src add-ons kernel drivers tty ; + EnableWerror src add-ons kernel drivers video ; + EnableWerror src add-ons kernel file_systems bfs ; + EnableWerror src add-ons kernel file_systems cdda ; +# EnableWerror src add-ons kernel file_systems ext2 ; +# EnableWerror src add-ons kernel file_systems fat ; +# EnableWerror src add-ons kernel file_systems googlefs ; + EnableWerror src add-ons kernel file_systems iso9660 ; + EnableWerror src add-ons kernel file_systems layers ; + EnableWerror src add-ons kernel file_systems netfs ; + EnableWerror src add-ons kernel file_systems nfs ; + EnableWerror src add-ons kernel file_systems nfs4 ; +# EnableWerror src add-ons kernel file_systems ntfs ; + EnableWerror src add-ons kernel file_systems packagefs ; + EnableWerror src add-ons kernel file_systems ramfs ; +# EnableWerror src add-ons kernel file_systems reiserfs ; + EnableWerror src add-ons kernel file_systems udf ; + EnableWerror src add-ons kernel file_systems userlandfs ; + EnableWerror src add-ons kernel generic ; +# EnableWerror src add-ons kernel network datalink_protocols ; + EnableWerror src add-ons kernel network devices ; + EnableWerror src add-ons kernel network dns_resolver ; + EnableWerror src add-ons kernel network notifications ; + EnableWerror src add-ons kernel network ppp ; + EnableWerror src add-ons kernel network protocols ; +# EnableWerror src add-ons kernel network stack ; + EnableWerror src add-ons kernel partitioning_systems ; + EnableWerror src add-ons locale ; + EnableWerror src add-ons mail_daemon ; + EnableWerror src add-ons media media-add-ons demultiplexer ; + EnableWerror src add-ons media media-add-ons dvb ; + EnableWerror src add-ons media media-add-ons esound_sink ; + EnableWerror src add-ons media media-add-ons finepix_webcam ; + EnableWerror src add-ons media media-add-ons firewire_dv ; + EnableWerror src add-ons media media-add-ons legacy ; + EnableWerror src add-ons media media-add-ons mixer ; + EnableWerror src add-ons media media-add-ons multi_audio ; + EnableWerror src add-ons media media-add-ons opensound ; + EnableWerror src add-ons media media-add-ons radeon ; + EnableWerror src add-ons media media-add-ons reader ; + EnableWerror src add-ons media media-add-ons tone_producer_demo ; + EnableWerror src add-ons media media-add-ons usb_vision ; +# EnableWerror src add-ons media media-add-ons usb_webcam ; + EnableWerror src add-ons media media-add-ons video_mixer ; +# EnableWerror src add-ons media media-add-ons video_producer_demo ; + EnableWerror src add-ons media media-add-ons videowindow ; + EnableWerror src add-ons media media-add-ons writer ; + EnableWerror src add-ons media plugins ac3_decoder ; + EnableWerror src add-ons media plugins aiff_reader ; + EnableWerror src add-ons media plugins ape_reader ; +# EnableWerror src add-ons media plugins asf_reader ; + EnableWerror src add-ons media plugins au_reader ; +# EnableWerror src add-ons media plugins avi_reader ; +# EnableWerror src add-ons media plugins ffmpeg ; +# EnableWerror src add-ons media plugins matroska ; +# EnableWerror src add-ons media plugins mov_reader ; + EnableWerror src add-ons media plugins mp3_decoder ; +# EnableWerror src add-ons media plugins mp3_reader ; + EnableWerror src add-ons media plugins mp4_reader ; + EnableWerror src add-ons media plugins musepack ; +# EnableWerror src add-ons media plugins ogg ; +# EnableWerror src add-ons media plugins raw_decoder ; +# EnableWerror src add-ons media plugins speex ; + EnableWerror src add-ons media plugins theora ; + EnableWerror src add-ons media plugins vorbis ; +# EnableWerror src add-ons media plugins wav_reader ; + EnableWerror src add-ons media plugins xvid_decoder ; + EnableWerror src add-ons opengl ; + EnableWerror src add-ons print ; + EnableWerror src add-ons screen_savers ; + EnableWerror src add-ons tracker ; + EnableWerror src add-ons translators bmp ; +# EnableWerror src add-ons translators exr ; + EnableWerror src add-ons translators gif ; +# EnableWerror src add-ons translators hpgs ; + EnableWerror src add-ons translators hvif ; + EnableWerror src add-ons translators ico ; +# EnableWerror src add-ons translators jpeg ; # gcc2 + EnableWerror src add-ons translators jpeg2000 ; + EnableWerror src add-ons translators pcx ; +# EnableWerror src add-ons translators png ; # gcc2 + EnableWerror src add-ons translators ppm ; + EnableWerror src add-ons translators raw ; + EnableWerror src add-ons translators rtf ; + EnableWerror src add-ons translators sgi ; + EnableWerror src add-ons translators shared ; +# EnableWerror src add-ons translators stxt ; + EnableWerror src add-ons translators tga ; + EnableWerror src add-ons translators tiff ; +# EnableWerror src add-ons translators wonderbrush ; + EnableWerror src add-ons print ; + EnableWerror src bin package ; + EnableWerror src apps ; + EnableWerror src kits ; + EnableWerror src preferences ; + EnableWerror src servers ; + EnableWerror src system kernel ; + EnableWerror src system libroot add-ons ; + EnableWerror src system libroot posix locale ; + EnableWerror src system libroot posix wchar ; + EnableWerror src system runtime_loader ; +} + + +rule MultiArchIfPrimary ifValue : elseValue +{ + # MultiArchIfPrimary : ; + # + # Returns one of the two given values depending on whether + # TARGET_PACKAGING_ARCH is currently set to the primary packaging + # architecture. + + if $(TARGET_PACKAGING_ARCH) = $(TARGET_PACKAGING_ARCHS[1]) { + return $(ifValue) ; + } + return $(elseValue) ; +} + + +rule MultiArchConditionalGristFiles files : primaryGrist : secondaryGrist +{ + # MultiArchConditionalGristFiles : + # : ; + # + # Returns with their grist set to either or + # depending on whether TARGET_PACKAGING_ARCH is currently + # set to the primary packaging architecture. + + local grist = [ MultiArchIfPrimary $(primaryGrist) : $(secondaryGrist) ] ; + return $(files:G=$(grist:E=)) ; +} + + +rule MultiArchDefaultGristFiles files : gristPrefix +{ + # MultiArchDefaultGristFiles : ; + # + # Convenient shorthand for MultiArchConditionalGristFiles for the common + # case that for a secondary packaging architecture the packaging + # architecture name shall be appended to the grist while it shall be omitted + # for the primary packaging architecture. IOW, if TARGET_PACKAGING_ARCH is + # currently set to the primary packaging architecture are returned + # with their grist set to , otherwise are returned with + # their grist set to ! ( being the name of the + # packaging architecture) respectively (if is empty). + + local secondaryGrist = $(gristPrefix)!$(TARGET_PACKAGING_ARCH) ; + secondaryGrist ?= $(TARGET_PACKAGING_ARCH) ; + + return [ MultiArchConditionalGristFiles $(files) : $(gristPrefix) : + $(secondaryGrist) ] ; +} + + +rule MultiArchSubDirSetup architectures +{ + # MultiArchSubDirSetup ; + # + # For each of the given packaging architectures that are + # in the packaging architectures configured for the build (or all configured + # packaging architectures, if is empty) an object is + # prepared that can be used for an "on ... { ... }" block to set up subdir + # variables for the respective packaging architecture. Most notably + # TARGET_PACKAGING_ARCH, TARGET_ARCH, TARGET_LIBSUPC++, and TARGET_LIBSTDC++ + # are set to the values for the respective packaging architecture. The + # per-subdir variables SOURCE_GRIST, LOCATE_TARGET, LOCATE_SOURCE, + # SEARCH_SOURCE, *_LOCATE_TARGET, are reset. All SUBDIR* and config + # variables are set to the values they had when this rule was invoked. + + local result ; + architectures ?= $(TARGET_PACKAGING_ARCHS) ; + local architecture ; + for architecture in $(architectures) { + if ! $(architecture) in $(TARGET_PACKAGING_ARCHS) { + continue ; + } + + local architectureObject = $(architecture:G=) ; + result += $(architectureObject) ; + + # Set the variables that default to the values of the respective + # variables for the primary architecture. + TARGET_PACKAGING_ARCH on $(architectureObject) = $(architecture) ; + + local var ; + for var in TARGET_ARCH TARGET_LIBSUPC++ TARGET_LIBSTDC++ { + $(var) on $(architectureObject) = $($(var)_$(architecture)) ; + } + + # Clone the current config variable values and the variables SubDir + # resets. + for var in $(AUTO_SET_UP_CONFIG_VARIABLES) SUBDIR$(SUBDIRRESET) { + $(var) on $(architectureObject) = $($(var)) ; + } + + # adjust SOURCE_GRIST + SOURCE_GRIST on $(architectureObject) + = $(SOURCE_GRIST:E=)!$(architecture) ; + + # Adjust the subdir's object dirs that are architecture dependent. To + # avoid duplicating the code from SetupObjectsDir, we call it. Since it + # sets global variables, we set these variables on our object, call + # SetupObjectsDir in an "on" block, and grab the new variable values. + local hostTarget = HOST TARGET ; + local objectDirVars = + COMMON_ARCH COMMON_DEBUG DEBUG_$(HAIKU_DEBUG_LEVELS) + ; + objectDirVars = + COMMON_PLATFORM_LOCATE_TARGET + $(hostTarget)_$(objectDirVars)_LOCATE_TARGET + LOCATE_TARGET + LOCATE_SOURCE + SEARCH_SOURCE + ; + + for var in $(objectDirVars) { + $(var) on $(architectureObject) = ; + } + + on $(architectureObject) { + SetupObjectsDir ; + + for var in $(objectDirVars) { + $(var) on $(architectureObject) = $($(var)) ; + } + } + } + + return $(result) ; +} diff --git a/build/jam/BeOSRules b/build/jam/BeOSRules index c210679074..17d3715fb7 100644 --- a/build/jam/BeOSRules +++ b/build/jam/BeOSRules @@ -232,9 +232,11 @@ rule ResComp cc = $(HOST_CC) ; localIncludesOption = $(HOST_LOCAL_INCLUDES_OPTION) ; } else { - defines += $(TARGET_DEFINES) ; - cc = $(TARGET_CC) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; + defines += $(TARGET_DEFINES_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEFINES) ; + cc = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } } diff --git a/build/jam/BootRules b/build/jam/BootRules index fde7d54313..de5f677844 100644 --- a/build/jam/BootRules +++ b/build/jam/BootRules @@ -24,8 +24,9 @@ rule SetupBoot ASFLAGS on $(object) = $(TARGET_BOOT_CCFLAGS) ; # override warning flags - TARGET_WARNING_CCFLAGS on $(object) = $(TARGET_KERNEL_WARNING_CCFLAGS) ; - TARGET_WARNING_C++FLAGS on $(object) + TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) + = $(TARGET_KERNEL_WARNING_CCFLAGS) ; + TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = $(TARGET_KERNEL_WARNING_C++FLAGS) ; } } @@ -40,7 +41,7 @@ rule BootLd { # BootLd : : : ; - LINK on $(1) = $(TARGET_LD) ; + LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; LINKFLAGS on $(1) = $(4) ; if $(3) { LINKFLAGS on $(1) += --script=$(3) ; } @@ -125,5 +126,5 @@ actions BootStaticLibraryObjects # Force recreation of the archive to avoid build errors caused by # stale dependencies after renaming or deleting object files. $(RM) "$(1)" - $(HAIKU_AR) -r "$(1)" "$(2)" ; + $(HAIKU_AR_$(TARGET_PACKAGING_ARCH)) -r "$(1)" "$(2)" ; } diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 4bc1a8f18b..9dcd93ef8b 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -4,10 +4,13 @@ # for an optional package. -# Add the target architecture as a build feature. -EnableBuildFeatures $(HAIKU_ARCH) ; +local architecture = $(TARGET_PACKAGING_ARCH) ; -if $(HAIKU_GCC_VERSION[1]) = 2 { + +# Add the target architecture as a build feature. +EnableBuildFeatures $(TARGET_ARCH_$(architecture)) ; + +if $(TARGET_GCC_VERSION_$(architecture)[1]) = 2 { EnableBuildFeatures gcc2 ; } @@ -122,7 +125,7 @@ if ! 1 { # LLVM if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { + if $(TARGET_GCC_VERSION_$(architecture)[1]) >= 4 { HAIKU_LLVM_FILE = llvm-3.2-x86-gcc4-2012-12-21.zip ; local zipFile = [ DownloadFile $(HAIKU_LLVM_FILE) : $(baseURL)/$(HAIKU_LLVM_FILE) ] ; @@ -395,11 +398,13 @@ if $(TARGET_ARCH) = x86 { if $(HAIKU_BUILD_FEATURE_WEBKIT) { if $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != x86_64 { Echo "WebKit support not available on $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) < 4 { + } else if $(TARGET_GCC_VERSION_$(architecture)[1]) < 4 { if ! $(isHybridBuild) { - Echo "WebKit support not available on gcc $(HAIKU_GCC_VERSION[1])" ; + Echo "WebKit support not available on gcc" + "$(TARGET_GCC_VERSION_$(architecture)[1])" ; } else { - Echo "WebKit to be utilized by gcc4 inside $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR)" ; + Echo "WebKit to be utilized by gcc4 inside" + "$(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR)" ; } } else { local zipFile = [ DownloadFile $(HAIKU_WEBKIT_FILE) diff --git a/build/jam/BuildSetup b/build/jam/BuildSetup index 3ba10a1ae9..aee1b1918e 100644 --- a/build/jam/BuildSetup +++ b/build/jam/BuildSetup @@ -97,401 +97,61 @@ HAIKU_CONFIG_HEADERS = [ FDirName $(HAIKU_TOP) build user_config_headers ] [ FDirName $(HAIKU_TOP) build config_headers ] ; -#pragma mark - +# object directories common to all architectures +HAIKU_OBJECT_BASE_DIR = [ FDirName $(HAIKU_OBJECT_DIR) haiku ] ; +HAIKU_COMMON_ARCH_OBJECT_DIR = [ FDirName $(HAIKU_OBJECT_BASE_DIR) common ] ; -# haiku target platform settings -# analyze GCC version +#pragma mark - haiku target platform settings + + +local architecture ; +for architecture in $(HAIKU_PACKAGING_ARCHS) { + ArchitectureSetup $(architecture) ; +} + +# TODO: Might not be needed anymore. if $(HAIKU_HOST_BUILD_ONLY) = 1 { HAIKU_GCC_VERSION = 0 0 0 ; -} else { - HAIKU_GCC_VERSION = [ FAnalyzeGCCVersion HAIKU_GCC_RAW_VERSION ] ; } -# enable GCC -pipe option, if requested -if $(HAIKU_USE_GCC_PIPE) = 1 { - HAIKU_GCC_BASE_FLAGS = -pipe ; +if $(HAIKU_PACKAGING_ARCH) { + KernelArchitectureSetup $(HAIKU_PACKAGING_ARCH) ; } -# disable strict aliasing on anything newer than gcc 2 as it may lead to -# unexpected results. also disable the tree-vrp (value range propagation) -# optimization for now as with the current gcc4 version we are using this -# results in some broken code. -# TODO: remove the -fno-strict-aliasing option when all code has been -# analyzed/fixed with regard to aliasing. -# TODO: retest/remove the -fno-tree-vrp option as soon as we have updated our -# gcc4 compiler. See this discussion on some issues: -# http://www.freelists.org/post/haiku-development/hrev45320-Yet-another-nonobvious-effect-of-ftreevrp-optimization -if $(HAIKU_GCC_VERSION[1]) >= 3 { - HAIKU_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-tree-vrp ; -} - -# disable array bounds warnings on gcc 4.6 or newer since they trigger -# too many false positives. Coverity does a better job of this kind of analysis -# anyways. -if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_GCC_BASE_FLAGS += -Wno-array-bounds ; -} - -# activating graphite optimizations -if $(HAIKU_USE_GCC_GRAPHITE) = 1 { - HAIKU_GCC_BASE_FLAGS += -floop-interchange -ftree-loop-distribution - -floop-strip-mine -floop-block ; -} - -if $(HOST_GCC_VERSION[1]) >= 3 { - HOST_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-tree-vrp ; -} - -# override gcc 2.95.3's header directory -- strictly necessary only when using -# the BeOS native compiler (since its headers are incompatible), but it doesn't -# harm for the cross-compiler either. -if $(HAIKU_GCC_VERSION[1]) = 2 { - HAIKU_GCC_HEADERS_DIR = [ FDirName $(HAIKU_TOP) headers build gcc-2.95.3 ] ; -} - -# initial state for flags etc. -HAIKU_C++ ?= $(HAIKU_CC) ; -HAIKU_LINK = $(HAIKU_CC) ; -HAIKU_LINKFLAGS = $(HAIKU_GCC_BASE_FLAGS) ; -HAIKU_BOOT_LINKFLAGS = ; - -HAIKU_HDRS = [ FStandardHeaders ] ; -HAIKU_KERNEL_CCFLAGS = $(HAIKU_CCFLAGS) $(HAIKU_GCC_BASE_FLAGS) ; -HAIKU_KERNEL_C++FLAGS = $(HAIKU_C++FLAGS) $(HAIKU_GCC_BASE_FLAGS) ; -HAIKU_BOOT_CCFLAGS = $(HAIKU_CCFLAGS) $(HAIKU_GCC_BASE_FLAGS) ; -HAIKU_BOOT_C++FLAGS = $(HAIKU_C++FLAGS) $(HAIKU_GCC_BASE_FLAGS) ; -HAIKU_CCFLAGS += $(HAIKU_GCC_BASE_FLAGS) -nostdinc ; -HAIKU_C++FLAGS += $(HAIKU_GCC_BASE_FLAGS) -nostdinc ; HAIKU_DEFINES = __HAIKU__ ; -HAIKU_NO_WERROR ?= 0 ; +HAIKU_LIBSUPC++ = $(HAIKU_LIBSUPC++_$(HAIKU_PACKAGING_ARCH)) ; +HAIKU_LIBSTDC++ = $(HAIKU_LIBSTDC++_$(HAIKU_PACKAGING_ARCH)) ; + # distro compatibility level defines HAIKU_DISTRO_COMPATIBILITY ?= "default" ; switch $(HAIKU_DISTRO_COMPATIBILITY) { - case official : { + case official : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_OFFICIAL ; HAIKU_INCLUDE_TRADEMARKS = "" ; - } - case compatible : { + case compatible : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_COMPATIBLE ; HAIKU_INCLUDE_TRADEMARKS = "" ; - } - case "default" : { + case "default" : HAIKU_DEFINES += HAIKU_DISTRO_COMPATIBILITY_DEFAULT ; HAIKU_INCLUDE_TRADEMARKS = ; - } - case * : Exit "Invalid value for HAIKU_DISTRO_COMPATIBILITY:" - $(HAIKU_DISTRO_COMPATIBILITY) ; -} - -# determine the endianness of the host -switch $(HOST_GCC_MACHINE) { - case amd64-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; - case i?86-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; - case powerpc-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; - case x86_64-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; - - # the following are rather unlikely as hosts ... - case arm-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; - case m68k-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; - case mipsel-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; - case * : Exit "Unsupported gcc host machine:" $(HOST_GCC_MACHINE) ; -} - -switch $(HAIKU_CPU) { - case ppc : - { - HAIKU_DEFINES += __POWERPC__ ; - HAIKU_BOOT_PLATFORM ?= openfirmware ; - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - unused yet - } - case arm : - { - HAIKU_DEFINES += __ARM__ ; - HAIKU_BOOT_PLATFORM ?= u-boot ; - HAIKU_BOOT_BOARD ?= verdex ; - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; - # in kB (there is not really a floppy on the gumstix ;) ) - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - unused yet - HAIKU_NO_WERROR = 1 ; - # we use #warning as placeholders for things to write... - } - case x86 : - { - HAIKU_DEFINES += __INTEL__ ; - HAIKU_BOOT_PLATFORM = bios_ia32 ; - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB - - # yasm is required for target arch x86 - if ! $(HAIKU_YASM) { - Exit "HAIKU_YASM not set. Please re-run configure." ; - } - } - case x86_64 : - { - # x86_64 completely shares the x86 bootloader. - HAIKU_BOOT_PLATFORM = bios_ia32 ; - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 2880 ; # in kB - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB - - # x86_64 kernel source is under arch/x86. - HAIKU_KERNEL_ARCH = x86 ; - - # yasm is required for target arch x86_64 - if ! $(HAIKU_YASM) { - Exit "HAIKU_YASM not set. Please re-run configure." ; - } - } - case m68k : - { - HAIKU_DEFINES += __M68K__ ; - HAIKU_BOOT_PLATFORM ?= atari_m68k ; - switch $(HAIKU_BOOT_PLATFORM) { - case atari_m68k : - { - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 1440 ; # in kB - } - case amiga_m68k : - { - # for now we have trouble reading from double-sided images - HAIKU_BOOT_FLOPPY_IMAGE_SIZE = 880 ; # in kB - } - } - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 260 ; # in kB - HAIKU_NO_WERROR = 1 ; - # we use #warning as placeholders for things to write... - } - case mipsel : - { - HAIKU_DEFINES += __MIPSEL__ ; - # RouterBOARD firmware (ELF image over TFTP) - HAIKU_BOOT_PLATFORM = routerboard_mipsel ; - # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - HAIKU_NO_WERROR = 1 ; - # we use #warning as placeholders for things to write... - } case * : - Exit "Currently unsupported target CPU:" $(HAIKU_CPU) ; + Exit "Invalid value for HAIKU_DISTRO_COMPATIBILITY:" + $(HAIKU_DISTRO_COMPATIBILITY) ; } -# strip is required -if ! $(HAIKU_STRIP) { - Exit "HAIKU_STRIP not set. Please re-run configure." ; -} - -# Include embedded board-specific file. -if $(HAIKU_BOOT_BOARD) { - include [ FDirName $(HAIKU_BUILD_RULES_DIR) board $(HAIKU_BOOT_BOARD) - BoardSetup ] ; -} - -HAIKU_ARCH ?= $(HAIKU_CPU) ; -HAIKU_ARCH_MACRO_DEFINE = ARCH_$(HAIKU_ARCH) ; -HAIKU_DEFINES += $(HAIKU_ARCH_MACRO_DEFINE) ; -HAIKU_DEFINES += BOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; -HAIKU_KERNEL_ARCH ?= $(HAIKU_ARCH) ; -HAIKU_ATA_STACK ?= 1 ; - -# directories -HAIKU_OBJECT_BASE_DIR = [ FDirName $(HAIKU_OBJECT_DIR) haiku ] ; -HAIKU_COMMON_ARCH_OBJECT_DIR = [ FDirName $(HAIKU_OBJECT_BASE_DIR) common ] ; -HAIKU_ARCH_OBJECT_DIR = [ FDirName $(HAIKU_OBJECT_BASE_DIR) $(HAIKU_ARCH) ] ; -HAIKU_COMMON_DEBUG_OBJECT_DIR = [ FDirName $(HAIKU_ARCH_OBJECT_DIR) common ] ; -HAIKU_DEBUG_0_OBJECT_DIR = [ FDirName $(HAIKU_ARCH_OBJECT_DIR) release ] ; - -local level ; -for level in $(HAIKU_DEBUG_LEVELS[2-]) { - HAIKU_DEBUG_$(level)_OBJECT_DIR - = [ FDirName $(HAIKU_ARCH_OBJECT_DIR) debug_$(level) ] ; -} - -# set variables for gcc header options -SetIncludePropertiesVariables HAIKU ; - -# assembler flags -HAIKU_ASFLAGS = ; - -# C/C++ flags -HAIKU_KERNEL_CCFLAGS += -finline -fno-builtin ; -HAIKU_KERNEL_C++FLAGS += -finline -fno-builtin -fno-exceptions ; -HAIKU_KERNEL_DEFINES += _KERNEL_MODE ; -HAIKU_BOOT_CCFLAGS += -finline -fno-builtin ; -HAIKU_BOOT_C++FLAGS += -finline -fno-builtin -fno-exceptions ; - -if $(HAIKU_GCC_VERSION[1]) >= 3 { - HAIKU_BOOT_C++FLAGS += -fno-use-cxa-atexit ; - HAIKU_KERNEL_C++FLAGS += -fno-use-cxa-atexit ; -} - -if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_C++FLAGS += -Wno-deprecated ; - - HAIKU_KERNEL_CCFLAGS += -ffreestanding ; - HAIKU_KERNEL_C++FLAGS += -ffreestanding ; - HAIKU_BOOT_CCFLAGS += -ffreestanding ; - HAIKU_BOOT_C++FLAGS += -ffreestanding ; -} - -HAIKU_KERNEL_PIC_CCFLAGS = -fno-pic ; -HAIKU_KERNEL_PIC_LINKFLAGS = ; -HAIKU_KERNEL_ADDON_LINKFLAGS = ; - -switch $(HAIKU_ARCH) { - case ppc : - { - # Build a position independent PPC kernel. We need to be able to - # relocate the kernel, since the virtual address space layout at boot - # time is not fixed. - HAIKU_KERNEL_PIC_CCFLAGS = -fPIE ; - HAIKU_KERNEL_PIC_LINKFLAGS = -shared -fPIE ; - } - - case m68k : - { - # We don't want to have to handle emulating missing FPU opcodes for 040 - # and 060 in the kernel. - HAIKU_KERNEL_CCFLAGS += -m68020-60 ; - HAIKU_KERNEL_C++FLAGS += -m68020-60 ; - } - case x86 : - { - HAIKU_CCFLAGS += -march=pentium ; - HAIKU_C++FLAGS += -march=pentium ; - HAIKU_KERNEL_CCFLAGS += -march=pentium ; - HAIKU_KERNEL_C++FLAGS += -march=pentium ; - - # Enable use of the gcc built-in atomic functions instead of atomic_*(). - # The former are inlined and have thus less overhead. They are not - # available with gcc 2, but the header will take care of that. - HAIKU_DEFINES += B_USE_BUILTIN_ATOMIC_FUNCTIONS ; - } - case x86_64 : - { - # Kernel lives in the top 2GB of the address space, use kernel code - # model. - HAIKU_KERNEL_PIC_CCFLAGS += -mcmodel=kernel ; - - # Disable the red zone, which cannot be used in kernel code due to - # interrupts, and always enable the frame pointer so stack traces are - # correct. - HAIKU_KERNEL_CCFLAGS += -mno-red-zone -fno-omit-frame-pointer ; - HAIKU_KERNEL_C++FLAGS += -mno-red-zone -fno-omit-frame-pointer ; - HAIKU_KERNEL_PIC_LINKFLAGS += -z max-page-size=0x1000 ; - HAIKU_KERNEL_ADDON_LINKFLAGS += -z max-page-size=0x1000 ; - - # Bootloader is 32-bit. - HAIKU_BOOT_LINKFLAGS += -m elf_i386_haiku ; - HAIKU_BOOT_CCFLAGS += -m32 -march=pentium ; - HAIKU_BOOT_C++FLAGS += -m32 -march=pentium ; - - # Enable use of the gcc built-in atomic functions instead of atomic_*(). - # The former are inlined and have thus less overhead. - HAIKU_DEFINES += B_USE_BUILTIN_ATOMIC_FUNCTIONS ; - } -} - -# If the environment variable HAIKU_INCLUDE_PATENTED_CODE is defined, we -# define an equally named macro to the variable value. Some components use the -# macro to allow compilation of code known to implemented patented ideas and/or -# techniques, for example the Freetype bytecode hinter or sub-pixel rendering -# as well as some problematic media codecs. +# If the environment variable HAIKU_INCLUDE_PATENTED_CODE is defined, we define +# an equally named macro to the variable value. Some components use the macro +# to allow compilation of code known to implemented patented ideas and/or +# techniques, for example the Freetype bytecode hinter or sub-pixel rendering as +# well as some problematic media codecs. if $(HAIKU_INCLUDE_PATENTED_CODE) { HAIKU_DEFINES += HAIKU_INCLUDE_PATENTED_CODE=$(HAIKU_INCLUDE_PATENTED_CODE) ; } -# warning flags -HAIKU_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes - -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar ; -HAIKU_WARNING_C++FLAGS = -Wall -Wno-trigraphs -Wno-ctor-dtor-privacy - -Woverloaded-virtual -Wpointer-arith -Wcast-align -Wsign-compare - -Wno-multichar ; - -HAIKU_KERNEL_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes - -Wno-multichar ; -HAIKU_KERNEL_WARNING_C++FLAGS = -Wall -Wno-trigraphs -Wno-multichar ; - -# debug flags -HAIKU_DEBUG_FLAGS ?= -ggdb ; - -# debug 0: suppress asserts -HAIKU_DEBUG_0_CCFLAGS = [ FDefines NDEBUG=$(NDEBUG) ] ; -HAIKU_DEBUG_0_C++FLAGS = [ FDefines NDEBUG=$(NDEBUG) ] ; - -HAIKU_KERNEL_DEBUG_0_CCFLAGS = [ FDefines NDEBUG=$(NDEBUG) ] ; -HAIKU_KERNEL_DEBUG_0_C++FLAGS = [ FDefines NDEBUG=$(NDEBUG) ] ; - -local level ; -for level in $(HAIKU_DEBUG_LEVELS[2-]) { - local flags = $(HAIKU_DEBUG_FLAGS) [ FDefines DEBUG=$(level) ] ; - HAIKU_DEBUG_$(level)_CCFLAGS = $(flags) ; - HAIKU_DEBUG_$(level)_C++FLAGS = $(flags) ; - HAIKU_KERNEL_DEBUG_$(level)_CCFLAGS = $(flags) ; - HAIKU_KERNEL_DEBUG_$(level)_C++FLAGS = $(flags) ; -} - -if $(HAIKU_GCC_VERSION[1]) >= 3 { - # TODO: Temporary work-around. Should be defined in the compiler specs - HAIKU_LINKFLAGS += -Xlinker --no-undefined ; -} else { - HAIKU_DEFINES += _BEOS_R5_COMPATIBLE_ ; -} - -# private shared kernel/libroot headers -HAIKU_PRIVATE_SYSTEM_HEADERS = - [ PrivateHeaders $(DOT) system system/arch/$(HAIKU_ARCH) ] -; - -# private kernel headers to be used when compiling kernel code -HAIKU_PRIVATE_KERNEL_HEADERS = - [ PrivateHeaders $(DOT) kernel libroot shared - kernel/boot/platform/$(HAIKU_BOOT_PLATFORM) ] - [ ArchHeaders $(HAIKU_KERNEL_ARCH) ] - [ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR) system kernel ] - $(HAIKU_PRIVATE_SYSTEM_HEADERS) -; - -# Add some grist to the libgcc objects -HAIKU_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS:G=libgcc) ; - -# the C++ standard library -HAIKU_BUILD_SHARED_LIBSTDC++ = ; -if $(HAIKU_SHARED_LIBSTDC++) { - HAIKU_LIBSTDC++ = $(HAIKU_SHARED_LIBSTDC++) ; -} else { - # no shared library available with the compiler -- build it - if $(HAIKU_GCC_VERSION[1]) = 2 { - HAIKU_LIBSTDC++ = libstdc++.r4.so ; - } else { - HAIKU_LIBSTDC++ = libstdc++.so ; - } - HAIKU_SHARED_LIBSTDC++ = $(HAIKU_LIBSTDC++) ; - HAIKU_BUILD_SHARED_LIBSTDC++ = 1 ; -} - -# the C++ support (runtime) library -HAIKU_BUILD_SHARED_LIBSUPC++ = ; -if $(HAIKU_SHARED_LIBSUPC++) { - HAIKU_LIBSUPC++ = $(HAIKU_SHARED_LIBSUPC++) ; -} else { - # no shared library available with the compiler -- build it for gcc 4 - if $(HAIKU_GCC_VERSION[1]) != 2 { - HAIKU_SHARED_LIBSUPC++ = libsupc++.so ; - HAIKU_BUILD_SHARED_LIBSUPC++ = 1 ; - } - - HAIKU_LIBSUPC++ = $(HAIKU_SHARED_LIBSUPC++) ; -} - +HAIKU_ATA_STACK ?= 1 ; # network libraries HAIKU_NETWORK_LIBS = network ; @@ -499,38 +159,6 @@ HAIKU_NETAPI_LIB = bnetapi ; HAIKU_SELECT_UNAME_ETC_LIB = ; # libroot, against which we link anyway -# locale libraries -HAIKU_LOCALE_LIBS = liblocalestub.a ; - - -# library and executable glue code -local commonGlueCode = - init_term_dyn.o - crti.o - crtn.o -; -HAIKU_LIBRARY_BEGIN_GLUE_CODE = - crti.o - crtbegin.o - init_term_dyn.o -; -HAIKU_LIBRARY_END_GLUE_CODE = - crtend.o - crtn.o -; -HAIKU_EXECUTABLE_BEGIN_GLUE_CODE = - crti.o - crtbegin.o - start_dyn.o - init_term_dyn.o -; -HAIKU_EXECUTABLE_END_GLUE_CODE = $(HAIKU_LIBRARY_END_GLUE_CODE) ; -HAIKU_KERNEL_ADDON_BEGIN_GLUE_CODE = crtbegin.o - haiku_version_glue.o ; -HAIKU_KERNEL_ADDON_END_GLUE_CODE = $(HAIKU_GCC_LIBGCC) crtend.o ; - -SEARCH on crtbegin.o crtend.o = $(HAIKU_GCC_LIB_DIR) ; - HAIKU_EXECUTABLE_MIME_TYPE = "application/x-vnd.Be-elfexecutable" ; # TODO: The version stuff should probably go into a separate file and be made @@ -545,24 +173,24 @@ if ! $(HAIKU_BUILD_VERSION) { # an unknown build. HAIKU_BUILD_DESCRIPTION ?= "Unknown Build" ; -# init library name map -{ - local i ; - for i in be bnetapi debug device game GL locale mail media midi midi2 - network opengl package root screensaver textencoding tracker - translation z { - HAIKU_LIBRARY_NAME_MAP_$(i) = lib$(i).so ; - } - HAIKU_LIBRARY_NAME_MAP_libstdc++ = $(HAIKU_LIBSTDC++) ; - HAIKU_LIBRARY_NAME_MAP_libsupc++ = $(HAIKU_LIBSUPC++) ; - HAIKU_LIBRARY_NAME_MAP_input_server = input_server ; + +#pragma mark - host platform settings + + +# determine the endianness of the host +switch $(HOST_GCC_MACHINE) { + case amd64-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case i?86-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case powerpc-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; + case x86_64-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + + # the following are rather unlikely as hosts ... + case arm-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case m68k-* : HAIKU_HOST_IS_BIG_ENDIAN = 1 ; + case mipsel-* : HAIKU_HOST_IS_BIG_ENDIAN = 0 ; + case * : Exit "Unsupported gcc host machine:" $(HOST_GCC_MACHINE) ; } - -#pragma mark - - -# host platform settings - # analyze the host gcc machine spec to find out about 64-bitness HOST_PLATFORM_IS_64_BIT = ; switch $(HOST_GCC_MACHINE) { @@ -645,13 +273,23 @@ if $(HOST_CPU) = x86 && $(HOST_PLATFORM_IS_64_BIT) { } HOST_ARCH ?= $(HOST_CPU) ; -HOST_ARCH_MACRO_DEFINE = ARCH_$(HOST_CPU) ; +HOST_ARCHS = $(HOST_ARCH) ; +# analyze GCC version +HOST_GCC_VERSION = [ FAnalyzeGCCVersion HOST_GCC_RAW_VERSION ] ; + +# set packaging architecture +HOST_PACKAGING_ARCH ?= $(HOST_CPU) ; +if $(HOST_PACKAGING_ARCH) = x86 && $(HOST_GCC_VERSION[1]) = 2 { + HOST_PACKAGING_ARCH = x86_gcc2 ; +} +HOST_PACKAGING_ARCHS = $(HOST_PACKAGING_ARCH) ; # directories HOST_OBJECT_BASE_DIR = [ FDirName $(HAIKU_OBJECT_DIR) $(HOST_PLATFORM) ] ; HOST_COMMON_ARCH_OBJECT_DIR = [ FDirName $(HOST_OBJECT_BASE_DIR) common ] ; -HOST_ARCH_OBJECT_DIR = [ FDirName $(HOST_OBJECT_BASE_DIR) $(HOST_ARCH) ] ; +HOST_ARCH_OBJECT_DIR + = [ FDirName $(HOST_OBJECT_BASE_DIR) $(HOST_PACKAGING_ARCH) ] ; HOST_COMMON_DEBUG_OBJECT_DIR = [ FDirName $(HOST_ARCH_OBJECT_DIR) common ] ; HOST_DEBUG_0_OBJECT_DIR = [ FDirName $(HOST_ARCH_OBJECT_DIR) release ] ; @@ -661,9 +299,6 @@ for level in $(HAIKU_DEBUG_LEVELS[2-]) { = [ FDirName $(HOST_ARCH_OBJECT_DIR) debug_$(level) ] ; } -# analyze GCC version -HOST_GCC_VERSION = [ FAnalyzeGCCVersion HOST_GCC_RAW_VERSION ] ; - # set variables for gcc header options SetIncludePropertiesVariables HOST ; @@ -679,6 +314,10 @@ if $(HOST_PLATFORM) != cygwin { HOST_PIC_C++FLAGS += -fPIC ; } +if $(HOST_GCC_VERSION[1]) >= 3 { + HOST_GCC_BASE_FLAGS += -fno-strict-aliasing -fno-tree-vrp ; +} + HOST_KERNEL_CCFLAGS += $(HOST_GCC_BASE_FLAGS) -finline -fno-builtin -D_KERNEL_MODE ; HOST_KERNEL_C++FLAGS += $(HOST_GCC_BASE_FLAGS) -finline -fno-builtin @@ -718,13 +357,14 @@ HOST_KERNEL_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes ; HOST_KERNEL_WARNING_C++FLAGS = -Wall -Wno-trigraphs ; # debug flags +local hostDebugFlags ; switch $(HOST_PLATFORM) { - case haiku : HOST_DEBUG_FLAGS ?= -ggdb ; - case haiku_host : HOST_DEBUG_FLAGS ?= -ggdb ; - case linux : HOST_DEBUG_FLAGS ?= -ggdb ; - case freebsd : HOST_DEBUG_FLAGS ?= -ggdb ; - case darwin : HOST_DEBUG_FLAGS ?= -ggdb ; - case * : HOST_DEBUG_FLAGS ?= -g ; + case haiku : hostDebugFlags ?= -ggdb ; + case haiku_host : hostDebugFlags ?= -ggdb ; + case linux : hostDebugFlags ?= -ggdb ; + case freebsd : hostDebugFlags ?= -ggdb ; + case darwin : hostDebugFlags ?= -ggdb ; + case * : hostDebugFlags ?= -g ; } # debug 0: suppress asserts @@ -736,7 +376,7 @@ HOST_KERNEL_DEBUG_0_C++FLAGS = [ FDefines NDEBUG=$(NDEBUG) ] ; local level ; for level in $(HAIKU_DEBUG_LEVELS[2-]) { - local flags = $(HOST_DEBUG_FLAGS) [ FDefines DEBUG=$(level) ] ; + local flags = $(hostDebugFlags) [ FDefines DEBUG=$(level) ] ; HOST_DEBUG_$(level)_CCFLAGS = $(flags) ; HOST_DEBUG_$(level)_C++FLAGS = $(flags) ; HOST_KERNEL_DEBUG_$(level)_CCFLAGS = $(flags) ; @@ -760,7 +400,7 @@ if $(HOST_PLATFORM_BEOS_COMPATIBLE) CP = copyattr --data ; } -HOST_DEFINES += $(HOST_ARCH_MACRO_DEFINE) ; +HOST_DEFINES += ARCH_$(HOST_CPU) ; HOST_DEFINES += _NO_INLINE_ASM ; # for builds of tools in the current environment @@ -948,9 +588,8 @@ if ! $(HOST_PLATFORM_BEOS_COMPATIBLE) { } -#pragma mark - +#pragma mark - target platform settings -# target platform settings # check the target platform compatibility SetPlatformCompatibilityFlagVariables TARGET_PLATFORM : TARGET : target ; @@ -964,46 +603,59 @@ if $(TARGET_PLATFORM) != haiku { } # Set TARGET_* variables either from HAIKU_* or HOST_* depending on the -# specified TARGET_PLATFORM. +# specified TARGET_PLATFORM. Some variables are package architecture dependent +# and their name gets a respective suffix. A few variables exist both with and +# without suffix. The latter is either equivalent to the variable with the +# primary architecture suffix (e.g. TARGET_ARCH) or is (additionally) applicable +# for all architectures (e.g. TARGET_DEFINES). local buildVars = - ARCH CPU GCC_VERSION KERNEL_ARCH + ARCH ARCHS KERNEL_ARCH PACKAGING_ARCH PACKAGING_ARCHS - AR CC C++ LD OBJCOPY RANLIB ELFEDIT - - INCLUDES_SEPARATOR LOCAL_INCLUDES_OPTION SYSTEM_INCLUDES_OPTION - - HDRS CPPFLAGS CCFLAGS C++FLAGS LDFLAGS LINK LINKFLAGS DEFINES - ARFLAGS UNARFLAGS + DEFINES KERNEL_DEFINES KERNEL_CCFLAGS KERNEL_C++FLAGS KERNEL_PIC_CCFLAGS KERNEL_PIC_LINKFLAGS KERNEL_ADDON_LINKFLAGS BOOT_CCFLAGS BOOT_C++FLAGS BOOT_LINKFLAGS - WARNING_CCFLAGS WARNING_C++FLAGS KERNEL_WARNING_CCFLAGS KERNEL_WARNING_C++FLAGS - DEBUG_FLAGS - - DEBUG_$(HAIKU_DEBUG_LEVELS)_CCFLAGS DEBUG_$(HAIKU_DEBUG_LEVELS)_C++FLAGS - KERNEL_DEBUG_$(HAIKU_DEBUG_LEVELS)_CCFLAGS KERNEL_DEBUG_$(HAIKU_DEBUG_LEVELS)_C++FLAGS PRIVATE_KERNEL_HEADERS - PRIVATE_SYSTEM_HEADERS LIBSTDC++ LIBSUPC++ - STATIC_LIBSTDC++ STATIC_LIBSUPC++ NETWORK_LIBS NETAPI_LIB SELECT_UNAME_ETC_LIB - ARCH_MACRO_DEFINE EXECUTABLE_MIME_TYPE + EXECUTABLE_MIME_TYPE - OBJECT_BASE_DIR COMMON_ARCH_OBJECT_DIR COMMON_DEBUG_OBJECT_DIR + OBJECT_BASE_DIR COMMON_ARCH_OBJECT_DIR + ; + +local archDependentBuildVars = + ARCH CPU GCC_VERSION + + AR CC C++ ELFEDIT LD OBJCOPY RANLIB STRIP + + ARFLAGS ASFLAGS UNARFLAGS CPPFLAGS CCFLAGS C++FLAGS HDRS LDFLAGS + LINK LINKFLAGS + + WARNING_CCFLAGS WARNING_C++FLAGS + + DEBUG_$(HAIKU_DEBUG_LEVELS)_CCFLAGS DEBUG_$(HAIKU_DEBUG_LEVELS)_C++FLAGS + + INCLUDES_SEPARATOR LOCAL_INCLUDES_OPTION SYSTEM_INCLUDES_OPTION + + PRIVATE_SYSTEM_HEADERS + + LIBSTDC++ LIBSUPC++ + + ARCH_OBJECT_DIR COMMON_DEBUG_OBJECT_DIR DEBUG_$(HAIKU_DEBUG_LEVELS)_OBJECT_DIR -; + ; if $(TARGET_PLATFORM) = haiku { local var ; @@ -1011,31 +663,37 @@ if $(TARGET_PLATFORM) = haiku { TARGET_$(var) = $(HAIKU_$(var)) ; } - TARGET_GCC_LIB_DIR = $(HAIKU_GCC_LIB_DIR) ; - TARGET_GCC_HEADERS_DIR = $(HAIKU_GCC_HEADERS_DIR) ; - TARGET_GCC_LIBGCC = $(HAIKU_GCC_LIBGCC) ; - TARGET_GCC_LIBGCC_OBJECTS = $(HAIKU_GCC_LIBGCC_OBJECTS) ; + for var in $(archDependentBuildVars)_$(TARGET_PACKAGING_ARCHS) { + TARGET_$(var) = $(HAIKU_$(var)) ; + } - TARGET_KERNEL_LIBGCC = $(HAIKU_KERNEL_LIBGCC) ; - TARGET_KERNEL_LIBSUPC++ = $(HAIKU_KERNEL_LIBSUPC++) ; - TARGET_BOOT_LIBGCC = $(HAIKU_BOOT_LIBGCC) ; - TARGET_BOOT_LIBSUPC++ = $(HAIKU_BOOT_LIBSUPC++) ; + TARGET_KERNEL_LIBGCC + = $(HAIKU_KERNEL_LIBGCC_$(TARGET_PACKAGING_ARCH)) ; + TARGET_KERNEL_LIBSUPC++ + = $(HAIKU_KERNEL_LIBSUPC++_$(TARGET_PACKAGING_ARCH)) ; + TARGET_BOOT_LIBGCC + = $(HAIKU_BOOT_LIBGCC_$(TARGET_PACKAGING_ARCH)) ; + TARGET_BOOT_LIBSUPC++ + = $(HAIKU_BOOT_LIBSUPC++_$(TARGET_PACKAGING_ARCH)) ; TARGET_BOOT_PLATFORM ?= $(HAIKU_BOOT_PLATFORM) ; TARGET_BOOT_BOARD ?= $(HAIKU_BOOT_BOARD) ; - TARGET_LIBRARY_NAME_MAP = HAIKU_LIBRARY_NAME_MAP ; - + local architecture ; + for architecture in $(TARGET_PACKAGING_ARCHS) { + TARGET_DEFINES_$(architecture) = $(HAIKU_DEFINES_$(architecture)) ; + TARGET_LIBRARY_NAME_MAP_$(architecture) + = HAIKU_LIBRARY_NAME_MAP_$(architecture) ; + } } else { local var ; for var in $(buildVars) { TARGET_$(var) = $(HOST_$(var)) ; } - TARGET_GCC_LIB_DIR = ; - TARGET_GCC_HEADERS_DIR = ; - TARGET_GCC_LIBGCC = ; - TARGET_GCC_LIBGCC_OBJECTS = ; + for var in $(archDependentBuildVars) { + TARGET_$(var)_$(TARGET_PACKAGING_ARCH) = $(HOST_$(var)) ; + } TARGET_KERNEL_LIBGCC = ; TARGET_KERNEL_LIBSUPC++ = ; @@ -1045,7 +703,10 @@ if $(TARGET_PLATFORM) = haiku { TARGET_BOOT_PLATFORM = ; TARGET_BOOT_BOARD = ; - TARGET_LIBRARY_NAME_MAP = HOST_LIBRARY_NAME_MAP ; + TARGET_DEFINES_$(TARGET_PACKAGING_ARCH) = ; + # all flags are in TARGET_DEFINES + + TARGET_LIBRARY_NAME_MAP_$(TARGET_PACKAGING_ARCH) = HOST_LIBRARY_NAME_MAP ; } # define macro, for identifying the platform @@ -1095,8 +756,8 @@ if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM_BEOS_COMPATIBLE) { # headers and flags local compatibilityHeader = -include [ FDirName $(HAIKU_TOP) headers build HaikuBuildCompatibility.h ] ; - TARGET_CCFLAGS += $(compatibilityHeader) ; - TARGET_C++FLAGS += $(compatibilityHeader) ; + TARGET_CCFLAGS_$(TARGET_PACKAGING_ARCH) += $(compatibilityHeader) ; + TARGET_C++FLAGS_$(TARGET_PACKAGING_ARCH) += $(compatibilityHeader) ; # compatibility library TARGET_HAIKU_COMPATIBILITY_LIBS = libhaikucompat.a ; @@ -1106,13 +767,13 @@ if ! $(TARGET_PLATFORM_HAIKU_COMPATIBLE) && $(TARGET_PLATFORM_BEOS_COMPATIBLE) { if $(TARGET_PLATFORM) = libbe_test { # headers and flags - TARGET_HDRS += + TARGET_HDRS_$(TARGET_PACKAGING_ARCH) += [ PublicHeaders $(DOT) app drivers game interface kernel locale storage support ] [ PrivateHeaders $(DOT) ] ; TARGET_DEFINES += __HAIKU__ ; - TARGET_PRIVATE_SYSTEM_HEADERS = + TARGET_PRIVATE_SYSTEM_HEADERS_$(TARGET_PACKAGING_ARCH) = [ PrivateHeaders $(DOT) system system/arch/$(TARGET_ARCH) ] ; # directories @@ -1120,28 +781,30 @@ if $(TARGET_PLATFORM) = libbe_test { = [ FDirName $(HAIKU_OBJECT_DIR) $(TARGET_PLATFORM) ] ; TARGET_COMMON_ARCH_OBJECT_DIR = [ FDirName $(TARGET_OBJECT_BASE_DIR) common ] ; - TARGET_ARCH_OBJECT_DIR + TARGET_ARCH_OBJECT_DIR_$(TARGET_PACKAGING_ARCH) = [ FDirName $(TARGET_OBJECT_BASE_DIR) $(TARGET_ARCH) ] ; - TARGET_COMMON_DEBUG_OBJECT_DIR - = [ FDirName $(TARGET_ARCH_OBJECT_DIR) common ] ; - TARGET_DEBUG_0_OBJECT_DIR - = [ FDirName $(TARGET_ARCH_OBJECT_DIR) release ] ; + TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH) + = [ FDirName $(TARGET_ARCH_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + common ] ; + TARGET_DEBUG_0_OBJECT_DIR_$(TARGET_PACKAGING_ARCH) + = [ FDirName $(TARGET_ARCH_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + release ] ; local level ; for level in $(HAIKU_DEBUG_LEVELS[2-]) { - TARGET_DEBUG_$(level)_OBJECT_DIR - = [ FDirName $(TARGET_ARCH_OBJECT_DIR) debug_$(level) ] ; + TARGET_DEBUG_$(level)_OBJECT_DIR_$(TARGET_PACKAGING_ARCH) + = [ FDirName $(TARGET_ARCH_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + debug_$(level) ] ; } # library name map - TARGET_LIBRARY_NAME_MAP = LIBBE_LIBRARY_NAME_MAP ; + TARGET_LIBRARY_NAME_MAP_$(TARGET_PACKAGING_ARCH) = LIBBE_LIBRARY_NAME_MAP ; LIBBE_LIBRARY_NAME_MAP_be = libbe_test.so ; } -#pragma mark - +#pragma mark - common stuff -# common stuff # start with a clean state CCFLAGS = ; @@ -1154,13 +817,6 @@ CC = bad-cc ; C++ = bad-c++ ; LINK = bad-link ; -# Allow compiling unit tests on Zeta. Instead of fixing the PostMessage() -# issues, they deprecated that nice function. This will enable it again: -C++FLAGS += -D_ZETA_USING_DEPRECATED_API_=1 ; -# Same for buggy find_directory threadsafety fixes -C++FLAGS += -D_ZETA_TS_FIND_DIR_=1 ; - # TODO: Doesn't really belong here. - # Defaults for warnings, optimization, and debugging. # @@ -1201,14 +857,18 @@ HAIKU_APP_TEST_DIR ?= [ FDirName $(HAIKU_TEST_DIR) apps ] ; HAIKU_APP_TEST_LIB_DIR ?= [ FDirName $(HAIKU_APP_TEST_DIR) lib ] ; HAIKU_TMP_DIR ?= [ FDirName $(HAIKU_OUTPUT_DIR) tmp ] ; -HAIKU_PACKAGING_BASE_DIR = [ FDirName $(TARGET_OBJECT_BASE_DIR) - $(HAIKU_PACKAGING_ARCH) packaging ] ; -HAIKU_PACKAGES_DIR = [ FDirName $(HAIKU_PACKAGING_BASE_DIR) - packages ] ; -HAIKU_PACKAGES_BUILD_DIR = [ FDirName $(HAIKU_PACKAGING_BASE_DIR) - packages_build ] ; -HAIKU_PACKAGE_REPOSITORIES_DIR = [ FDirName $(HAIKU_PACKAGING_BASE_DIR) - repositories ] ; +local architecture ; +for architecture in $(HAIKU_PACKAGING_ARCHS) { + local baseDir + = [ FDirName $(TARGET_OBJECT_BASE_DIR) $(architecture) packaging ] ; + HAIKU_PACKAGES_DIR_$(architecture) = [ FDirName $(baseDir) packages ] ; + HAIKU_PACKAGES_BUILD_DIR_$(architecture) + = [ FDirName $(baseDir) packages_build ] ; + HAIKU_PACKAGE_REPOSITORIES_DIR_$(architecture) + = [ FDirName $(baseDir) repositories ] ; +} + + HAIKU_PACKAGE_INFOS_DIR = [ FDirName $(HAIKU_TOP) src data package_infos ] ; @@ -1225,197 +885,20 @@ SUBDIRRULES += SetupObjectsDir ; # with imported sources. AUTO_SET_UP_CONFIG_VARIABLES += HOST_WARNING_CCFLAGS HOST_WARNING_C++FLAGS - TARGET_WARNING_CCFLAGS TARGET_WARNING_C++FLAGS + TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCHS) + TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCHS) + ; - # also add PLATFORM and SUPPORTED_PLATFORMS - PLATFORM SUPPORTED_PLATFORMS -; +# also add PLATFORM and SUPPORTED_PLATFORMS +AUTO_SET_UP_CONFIG_VARIABLES += PLATFORM SUPPORTED_PLATFORMS ; -# enable -Werror for certain parts of the source tree -HAIKU_WERRORFLAGS = ; -if $(HAIKU_GCC_VERSION[1]) >= 4 { - # -Wuninitialized gives too many false positives. - HAIKU_WERRORFLAGS = -Wno-error=uninitialized ; - - # TODO: remove the -Wno-unused-but-set-variable option - HAIKU_WERRORFLAGS += -Wno-unused-but-set-variable ; +# set up warnings +local architecture ; +for architecture in $(TARGET_PACKAGING_ARCHS) { + ArchitectureSetupWarnings $(architecture) ; } -rule EnableWerror dirTokens : scope { - AppendToConfigVar CCFLAGS : HAIKU_TOP $(dirTokens) - : -Werror $(HAIKU_WERRORFLAGS) : $(scope) ; - AppendToConfigVar C++FLAGS : HAIKU_TOP $(dirTokens) - : -Werror $(HAIKU_WERRORFLAGS) : $(scope) ; -} - -# Work-around for GCC 2 problem -- despite -Wno-multichar it reports -# multichar warnings in headers/private/kernel/debugger_keymaps.h included by -# src/system/kernel/arch/x86/arch_debug_console.cpp. -if $(HAIKU_GCC_VERSION[1]) = 2 { - local file = arch_debug_console.o ; - C++FLAGS on $(file) = [ on $(file) return $(C++FLAGS) ] ; -} - -if $(HAIKU_NO_WERROR) != 1 { - EnableWerror src add-ons accelerants 3dfx ; - EnableWerror src add-ons accelerants ati ; - EnableWerror src add-ons accelerants common ; - EnableWerror src add-ons accelerants et6x00 ; -# EnableWerror src add-ons accelerants intel_extreme ; -# EnableWerror src add-ons accelerants matrox ; - EnableWerror src add-ons accelerants neomagic ; -# EnableWerror src add-ons accelerants nvidia ; - EnableWerror src add-ons accelerants nvidia_gpgpu ; -# EnableWerror src add-ons accelerants radeon ; -# EnableWerror src add-ons accelerants radeon_hd ; - EnableWerror src add-ons accelerants s3 ; - EnableWerror src add-ons accelerants skeleton ; - EnableWerror src add-ons accelerants vesa ; - EnableWerror src add-ons accelerants via ; - EnableWerror src add-ons accelerants vmware ; - EnableWerror src add-ons bluetooth ; - EnableWerror src add-ons decorators ; - EnableWerror src add-ons disk_systems ; - EnableWerror src add-ons input_server devices ; -# EnableWerror src add-ons input_server filters ; -# EnableWerror src add-ons input_server methods ; - EnableWerror src add-ons kernel bluetooth ; -# EnableWerror src add-ons kernel bus_managers acpi ; - EnableWerror src add-ons kernel bus_managers agp_gart ; - EnableWerror src add-ons kernel bus_managers ata ; - EnableWerror src add-ons kernel bus_managers config_manager ; -# EnableWerror src add-ons kernel bus_managers firewire ; - EnableWerror src add-ons kernel bus_managers isa ; - EnableWerror src add-ons kernel bus_managers pci ; -# EnableWerror src add-ons kernel bus_managers ps2 ; # gcc2 - EnableWerror src add-ons kernel bus_managers scsi ; - EnableWerror src add-ons kernel bus_managers usb ; - EnableWerror src add-ons kernel busses agp_gart ; - EnableWerror src add-ons kernel busses ata ; - EnableWerror src add-ons kernel busses scsi ; - EnableWerror src add-ons kernel busses usb ; - EnableWerror src add-ons kernel console ; - EnableWerror src add-ons kernel cpu ; -# EnableWerror src add-ons kernel debugger ; # gcc2 -# EnableWerror src add-ons kernel drivers audio ; - EnableWerror src add-ons kernel drivers bluetooth ; - EnableWerror src add-ons kernel drivers bus ; - EnableWerror src add-ons kernel drivers common ; - EnableWerror src add-ons kernel drivers disk ; - EnableWerror src add-ons kernel drivers dvb ; -# EnableWerror src add-ons kernel drivers graphics ; -# EnableWerror src add-ons kernel drivers input ; - EnableWerror src add-ons kernel drivers joystick ; - EnableWerror src add-ons kernel drivers midi ; - EnableWerror src add-ons kernel drivers misc ; -# EnableWerror src add-ons kernel drivers network ; - EnableWerror src add-ons kernel drivers ports ; -# EnableWerror src add-ons kernel drivers power ; - EnableWerror src add-ons kernel drivers printer ; - EnableWerror src add-ons kernel drivers random ; - EnableWerror src add-ons kernel drivers tty ; - EnableWerror src add-ons kernel drivers video ; - EnableWerror src add-ons kernel file_systems bfs ; - EnableWerror src add-ons kernel file_systems cdda ; -# EnableWerror src add-ons kernel file_systems ext2 ; -# EnableWerror src add-ons kernel file_systems fat ; -# EnableWerror src add-ons kernel file_systems googlefs ; - EnableWerror src add-ons kernel file_systems iso9660 ; - EnableWerror src add-ons kernel file_systems layers ; - EnableWerror src add-ons kernel file_systems netfs ; - EnableWerror src add-ons kernel file_systems nfs ; - EnableWerror src add-ons kernel file_systems nfs4 ; -# EnableWerror src add-ons kernel file_systems ntfs ; - EnableWerror src add-ons kernel file_systems packagefs ; - EnableWerror src add-ons kernel file_systems ramfs ; -# EnableWerror src add-ons kernel file_systems reiserfs ; - EnableWerror src add-ons kernel file_systems udf ; - EnableWerror src add-ons kernel file_systems userlandfs ; - EnableWerror src add-ons kernel generic ; -# EnableWerror src add-ons kernel network datalink_protocols ; - EnableWerror src add-ons kernel network devices ; - EnableWerror src add-ons kernel network dns_resolver ; - EnableWerror src add-ons kernel network notifications ; - EnableWerror src add-ons kernel network ppp ; - EnableWerror src add-ons kernel network protocols ; -# EnableWerror src add-ons kernel network stack ; - EnableWerror src add-ons kernel partitioning_systems ; - EnableWerror src add-ons locale ; - EnableWerror src add-ons mail_daemon ; - EnableWerror src add-ons media media-add-ons demultiplexer ; - EnableWerror src add-ons media media-add-ons dvb ; - EnableWerror src add-ons media media-add-ons esound_sink ; - EnableWerror src add-ons media media-add-ons finepix_webcam ; - EnableWerror src add-ons media media-add-ons firewire_dv ; - EnableWerror src add-ons media media-add-ons legacy ; - EnableWerror src add-ons media media-add-ons mixer ; - EnableWerror src add-ons media media-add-ons multi_audio ; - EnableWerror src add-ons media media-add-ons opensound ; - EnableWerror src add-ons media media-add-ons radeon ; - EnableWerror src add-ons media media-add-ons reader ; - EnableWerror src add-ons media media-add-ons tone_producer_demo ; - EnableWerror src add-ons media media-add-ons usb_vision ; -# EnableWerror src add-ons media media-add-ons usb_webcam ; - EnableWerror src add-ons media media-add-ons video_mixer ; -# EnableWerror src add-ons media media-add-ons video_producer_demo ; - EnableWerror src add-ons media media-add-ons videowindow ; - EnableWerror src add-ons media media-add-ons writer ; - EnableWerror src add-ons media plugins ac3_decoder ; - EnableWerror src add-ons media plugins aiff_reader ; - EnableWerror src add-ons media plugins ape_reader ; -# EnableWerror src add-ons media plugins asf_reader ; - EnableWerror src add-ons media plugins au_reader ; -# EnableWerror src add-ons media plugins avi_reader ; -# EnableWerror src add-ons media plugins ffmpeg ; -# EnableWerror src add-ons media plugins matroska ; -# EnableWerror src add-ons media plugins mov_reader ; - EnableWerror src add-ons media plugins mp3_decoder ; -# EnableWerror src add-ons media plugins mp3_reader ; - EnableWerror src add-ons media plugins mp4_reader ; - EnableWerror src add-ons media plugins musepack ; -# EnableWerror src add-ons media plugins ogg ; -# EnableWerror src add-ons media plugins raw_decoder ; -# EnableWerror src add-ons media plugins speex ; - EnableWerror src add-ons media plugins theora ; - EnableWerror src add-ons media plugins vorbis ; -# EnableWerror src add-ons media plugins wav_reader ; - EnableWerror src add-ons media plugins xvid_decoder ; - EnableWerror src add-ons opengl ; - EnableWerror src add-ons print ; - EnableWerror src add-ons screen_savers ; - EnableWerror src add-ons tracker ; - EnableWerror src add-ons translators bmp ; -# EnableWerror src add-ons translators exr ; - EnableWerror src add-ons translators gif ; -# EnableWerror src add-ons translators hpgs ; - EnableWerror src add-ons translators hvif ; - EnableWerror src add-ons translators ico ; -# EnableWerror src add-ons translators jpeg ; # gcc2 - EnableWerror src add-ons translators jpeg2000 ; - EnableWerror src add-ons translators pcx ; -# EnableWerror src add-ons translators png ; # gcc2 - EnableWerror src add-ons translators ppm ; - EnableWerror src add-ons translators raw ; - EnableWerror src add-ons translators rtf ; - EnableWerror src add-ons translators sgi ; - EnableWerror src add-ons translators shared ; -# EnableWerror src add-ons translators stxt ; - EnableWerror src add-ons translators tga ; - EnableWerror src add-ons translators tiff ; -# EnableWerror src add-ons translators wonderbrush ; - EnableWerror src add-ons print ; - EnableWerror src bin package ; - EnableWerror src apps ; - EnableWerror src kits ; - EnableWerror src preferences ; - EnableWerror src servers ; - EnableWerror src system kernel ; - EnableWerror src system libroot add-ons ; - EnableWerror src system libroot posix locale ; - EnableWerror src system libroot posix wchar ; - EnableWerror src system runtime_loader ; -} # The following directories cannot currently be compiled with DEBUG=1 SetConfigVar DEBUG : HAIKU_TOP src add-ons disk_systems bfs : 0 : local ; diff --git a/build/jam/FileRules b/build/jam/FileRules index 2a0012c68e..0285d300bb 100644 --- a/build/jam/FileRules +++ b/build/jam/FileRules @@ -203,7 +203,8 @@ rule UnarchiveObjects actions UnarchiveObjects { - ( cd $(1[1]:D) && $(TARGET_AR) $(TARGET_UNARFLAGS) "$(2)" $(1:BS) ) + ( cd $(1[1]:D) && $(TARGET_AR_$(TARGET_PACKAGING_ARCH)) \ + $(TARGET_UNARFLAGS_$(TARGET_PACKAGING_ARCH)) "$(2)" $(1:BS) ) } diff --git a/build/jam/HaikuPackages b/build/jam/HaikuPackages index ab6668d176..572138207d 100644 --- a/build/jam/HaikuPackages +++ b/build/jam/HaikuPackages @@ -1,7 +1,6 @@ # The packages we build. Each is defined in its own file in the packages/ # subdirectory. local packages = - HaikuCrossDevel HaikuDevel HaikuLoader HaikuUserguide @@ -15,11 +14,26 @@ if $(HAIKU_BOOTSTRAP_BUILD) { packages += Haiku ; } +local archDependentPackages = + HaikuCrossDevel + ; + packages = $(packages:G=package-rules) ; -SEARCH on $(packages) = [ FDirName $(HAIKU_BUILD_RULES_DIR) packages ] ; +archDependentPackages = $(archDependentPackages:G=package-rules) ; +SEARCH on $(packages) $(archDependentPackages) + = [ FDirName $(HAIKU_BUILD_RULES_DIR) packages ] ; local package ; for package in $(packages) { include $(package) ; } + +for package in $(archDependentPackages) { + local architectureObject ; + for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + include $(package) ; + } + } +} diff --git a/build/jam/HeadersRules b/build/jam/HeadersRules index da07f9e4fa..bad637f052 100644 --- a/build/jam/HeadersRules +++ b/build/jam/HeadersRules @@ -71,11 +71,13 @@ rule ObjectSysHdrs [ FSysIncludes $(sysHeaders) : $(HOST_SYSTEM_INCLUDES_OPTION) ] ; } else { + local architecture = $(TARGET_PACKAGING_ARCH) ; fileHeaders = - [ FIncludes $(HDRS) : $(TARGET_LOCAL_INCLUDES_OPTION) ] - $(TARGET_INCLUDES_SEPARATOR) + [ FIncludes $(HDRS) + : $(TARGET_LOCAL_INCLUDES_OPTION_$(architecture)) ] + $(TARGET_INCLUDES_SEPARATOR_$(architecture)) [ FSysIncludes $(sysHeaders) - : $(TARGET_SYSTEM_INCLUDES_OPTION) ] ; + : $(TARGET_SYSTEM_INCLUDES_OPTION_$(architecture)) ] ; } ASHDRS on $(file) = $(fileHeaders) ; @@ -408,7 +410,8 @@ rule UsePrivateKernelHeaders rule UsePrivateSystemHeaders { - UseHeaders $(TARGET_PRIVATE_SYSTEM_HEADERS) : true ; + UseHeaders $(TARGET_PRIVATE_SYSTEM_HEADERS_$(TARGET_PACKAGING_ARCH)) + : true ; } @@ -440,7 +443,7 @@ rule FStandardOSHeaders } -rule FStandardHeaders +rule FStandardHeaders architecture { local osIncludes = add-ons add-ons/file_system add-ons/graphics add-ons/input_server add-ons/registrar @@ -453,14 +456,14 @@ rule FStandardHeaders # The C++ headers. If specified, we use the compiler headers, otherwise # the ones that come with our libstdc++. - if $(HAIKU_C++_HEADERS_DIR) { - headers += $(HAIKU_C++_HEADERS_DIR) ; + if $(HAIKU_C++_HEADERS_DIR_$(architecture)) { + headers += $(HAIKU_C++_HEADERS_DIR_$(architecture)) ; } else { headers += [ FDirName $(HAIKU_TOP) headers cpp ] ; } # GCC headers - headers += $(HAIKU_GCC_HEADERS_DIR) ; + headers += $(HAIKU_GCC_HEADERS_DIR_$(architecture)) ; # Use headers directory, to allow to do things like include headers += [ FDirName $(HAIKU_TOP) headers ] ; diff --git a/build/jam/HelperRules b/build/jam/HelperRules index 5cce26dc7d..4939bbbfef 100644 --- a/build/jam/HelperRules +++ b/build/jam/HelperRules @@ -267,19 +267,19 @@ rule FAnalyzeGCCVersion return $(version) ; } -rule SetIncludePropertiesVariables +rule SetIncludePropertiesVariables prefix : suffix { - # SetIncludePropertiesVariables ; + # SetIncludePropertiesVariables : ; # - local prefix = $(1) ; - if $($(prefix)_GCC_VERSION[1]) < 4 { - $(prefix)_INCLUDES_SEPARATOR = -I- ; - $(prefix)_LOCAL_INCLUDES_OPTION = -I ; - $(prefix)_SYSTEM_INCLUDES_OPTION = -I ; + suffix = $(suffix:E=) ; + if $($(prefix)_GCC_VERSION$(suffix)[1]) < 4 { + $(prefix)_INCLUDES_SEPARATOR$(suffix) = -I- ; + $(prefix)_LOCAL_INCLUDES_OPTION$(suffix) = -I ; + $(prefix)_SYSTEM_INCLUDES_OPTION$(suffix) = -I ; } else { - $(prefix)_INCLUDES_SEPARATOR = ; - $(prefix)_LOCAL_INCLUDES_OPTION = "-iquote " ; - $(prefix)_SYSTEM_INCLUDES_OPTION = "-I " ; + $(prefix)_INCLUDES_SEPARATOR$(suffix) = ; + $(prefix)_LOCAL_INCLUDES_OPTION$(suffix) = "-iquote " ; + $(prefix)_SYSTEM_INCLUDES_OPTION$(suffix) = "-I " ; } } diff --git a/build/jam/KernelRules b/build/jam/KernelRules index f56f157436..21f9d94cbe 100644 --- a/build/jam/KernelRules +++ b/build/jam/KernelRules @@ -23,8 +23,9 @@ rule SetupKernel ObjectDefines $(object) : $(TARGET_KERNEL_DEFINES) ; # override warning flags - TARGET_WARNING_CCFLAGS on $(object) = $(TARGET_KERNEL_WARNING_CCFLAGS) ; - TARGET_WARNING_C++FLAGS on $(object) + TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) on $(object) + = $(TARGET_KERNEL_WARNING_CCFLAGS) ; + TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH) on $(object) = $(TARGET_KERNEL_WARNING_C++FLAGS) ; } } @@ -39,7 +40,7 @@ rule KernelLd { # KernelLd : : : ; - LINK on $(1) = $(TARGET_LD) ; + LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; LINKFLAGS on $(1) = $(4) ; if $(3) { LINKFLAGS on $(1) += --script=$(3) ; } @@ -92,7 +93,7 @@ actions KernelSo1 $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) $(2[1]) --data $(2[2]) $(1) && - $(HAIKU_ELFEDIT) --output-type dyn $(1) + $(HAIKU_ELFEDIT_$(TARGET_PACKAGING_ARCH)) --output-type dyn $(1) } rule KernelAddon @@ -187,5 +188,5 @@ actions KernelStaticLibraryObjects # Force recreation of the archive to avoid build errors caused by # stale dependencies after renaming or deleting object files. $(RM) "$(1)" - $(HAIKU_AR) -r "$(1)" "$(2)" ; + $(HAIKU_AR_$(TARGET_PACKAGING_ARCH)) -r "$(1)" "$(2)" ; } diff --git a/build/jam/LocaleRules b/build/jam/LocaleRules index 7bd875d4eb..cc305b5abd 100644 --- a/build/jam/LocaleRules +++ b/build/jam/LocaleRules @@ -32,13 +32,17 @@ rule ExtractCatalogEntries target : sources : signature : regexp localIncludesOption = $(HOST_LOCAL_INCLUDES_OPTION) ; systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ; } else { - sysHeaders += $(TARGET_HDRS) ; - defines += $(TARGET_DEFINES) ; - cc = $(TARGET_CC) ; - - includesSeparator = $(TARGET_INCLUDES_SEPARATOR) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ; + sysHeaders += $(TARGET_HDRS_$(TARGET_PACKAGING_ARCH)) ; + defines += $(TARGET_DEFINES_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEFINES) ; + cc = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; + + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } } diff --git a/build/jam/MainBuildRules b/build/jam/MainBuildRules index e650f9abd2..82ec60010e 100644 --- a/build/jam/MainBuildRules +++ b/build/jam/MainBuildRules @@ -9,15 +9,10 @@ rule AddSharedObjectGlueCode on $(1) { platform = $(PLATFORM) ; if $(platform) = haiku { - local stdLibs = libroot.so ; - local beginGlue ; - local endGlue ; - if $(2) = true { - beginGlue += $(HAIKU_EXECUTABLE_BEGIN_GLUE_CODE) ; - endGlue += $(HAIKU_EXECUTABLE_END_GLUE_CODE) ; - } else { - beginGlue += $(HAIKU_LIBRARY_BEGIN_GLUE_CODE) ; - endGlue += $(HAIKU_LIBRARY_END_GLUE_CODE) ; + local stdLibs = [ MultiArchDefaultGristFiles libroot.so ] ; + local type = EXECUTABLE ; + if $(2) != true { + type = LIBRARY ; # special case for libroot: don't link it against itself if $(DONT_LINK_AGAINST_LIBROOT) { @@ -25,6 +20,11 @@ rule AddSharedObjectGlueCode } } + local beginGlue + = $(HAIKU_$(type)_BEGIN_GLUE_CODE_$(TARGET_PACKAGING_ARCH)) ; + local endGlue + = $(HAIKU_$(type)_END_GLUE_CODE_$(TARGET_PACKAGING_ARCH)) ; + LINK_BEGIN_GLUE on $(1) = $(beginGlue) ; LINK_END_GLUE on $(1) = $(endGlue) ; @@ -199,9 +199,9 @@ rule Ld LINK on $(target) = $(HOST_LD) ; LINKFLAGS on $(target) = $(HOST_LDFLAGS) $(LINKFLAGS) $(linkerFlags) ; } else { - LINK on $(target) = $(TARGET_LD) ; - LINKFLAGS on $(target) = $(TARGET_LDFLAGS) $(LINKFLAGS) - $(linkerFlags) ; + LINK on $(target) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; + LINKFLAGS on $(target) = $(TARGET_LDFLAGS_$(TARGET_PACKAGING_ARCH)) + $(LINKFLAGS) $(linkerFlags) ; } NEEDLIBS on $(target) = $(NEEDLIBS) ; @@ -265,8 +265,9 @@ rule CreateAsmStructOffsetsHeader header : source } } else { - sysHeaders += $(TARGET_HDRS) ; - defines += $(TARGET_DEFINES) ; + sysHeaders += $(TARGET_HDRS_$(TARGET_PACKAGING_ARCH)) ; + defines += $(TARGET_DEFINES_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEFINES) ; } # optimization flags @@ -299,18 +300,22 @@ rule CreateAsmStructOffsetsHeader header : source } else { # warning flags if $(WARNINGS) != 0 { - flags += $(TARGET_WARNING_C++FLAGS) ; + flags += $(TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH)) ; } # debug and other flags - flags += $(TARGET_C++FLAGS) $(TARGET_DEBUG_$(DEBUG)_C++FLAGS) + flags += $(TARGET_C++FLAGS_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEBUG_$(DEBUG)_C++FLAGS_$(TARGET_PACKAGING_ARCH)) $(SUBDIRC++FLAGS) $(C++FLAGS) ; - C++ on $(header) = $(TARGET_C++) ; + C++ on $(header) = $(TARGET_C++_$(TARGET_PACKAGING_ARCH)) ; - includesSeparator = $(TARGET_INCLUDES_SEPARATOR) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ; + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } } @@ -318,6 +323,7 @@ rule CreateAsmStructOffsetsHeader header : source # for non-PODs. Since we're using the same compiler for the whole kernel and # don't do virtual inheritence, that works well enough. flags += -Wno-invalid-offsetof ; + # TODO: Rather get rid of the respective offsetof() instances. # locate object, search for source, and set on target variables @@ -366,8 +372,9 @@ rule MergeObjectFromObjects LINK on $(1) = $(HOST_LD) ; LINKFLAGS on $(target) = $(HOST_LDFLAGS) ; } else { - LINK on $(1) = $(TARGET_LD) ; - LINKFLAGS on $(target) = $(TARGET_LDFLAGS) ; + LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; + LINKFLAGS on $(target) + = $(TARGET_LDFLAGS_$(TARGET_PACKAGING_ARCH)) ; } } @@ -469,12 +476,12 @@ rule LinkAgainst on $(target) { # map libraries, if desired and target platform is Haiku - if $(PLATFORM) != host && $(mapLibs) = true - && $(TARGET_LIBRARY_NAME_MAP) { + local map = $(TARGET_LIBRARY_NAME_MAP_$(TARGET_PACKAGING_ARCH)) ; + if $(PLATFORM) != host && $(mapLibs) = true && $(map) { local mappedLibs ; for i in $(libs) { - local mapped = $($(TARGET_LIBRARY_NAME_MAP)_$(i)) ; + local mapped = $($(map)_$(i)) ; mapped ?= $(i) ; mappedLibs += $(mapped) ; } diff --git a/build/jam/MiscRules b/build/jam/MiscRules index 64ffffd8da..68f9cbab6b 100644 --- a/build/jam/MiscRules +++ b/build/jam/MiscRules @@ -10,15 +10,21 @@ rule SetupObjectsDir if $(relPath) = . { relPath = ; } - COMMON_PLATFORM_LOCATE_TARGET = - [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) $(relPath) ] ; + + COMMON_PLATFORM_LOCATE_TARGET + = [ FDirName $(HAIKU_COMMON_PLATFORM_OBJECT_DIR) $(relPath) ] ; + HOST_COMMON_ARCH_LOCATE_TARGET + = [ FDirName $(HOST_COMMON_ARCH_OBJECT_DIR) $(relPath) ] ; + TARGET_COMMON_ARCH_LOCATE_TARGET + = [ FDirName $(TARGET_COMMON_ARCH_OBJECT_DIR) $(relPath) ] ; local var ; - for var in COMMON_ARCH COMMON_DEBUG DEBUG_$(HAIKU_DEBUG_LEVELS) { + for var in COMMON_DEBUG DEBUG_$(HAIKU_DEBUG_LEVELS) { HOST_$(var)_LOCATE_TARGET = [ FDirName $(HOST_$(var)_OBJECT_DIR) $(relPath) ] ; TARGET_$(var)_LOCATE_TARGET - = [ FDirName $(TARGET_$(var)_OBJECT_DIR) $(relPath) ] ; + = [ FDirName $(TARGET_$(var)_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + $(relPath) ] ; } LOCATE_TARGET = $(COMMON_PLATFORM_LOCATE_TARGET) ; @@ -71,58 +77,62 @@ rule SubIncludeGPL # pragma mark - MakeLocate variants -rule MakeLocateCommonPlatform +rule MakeLocateCommonPlatform files : subdir { # The file is shared between all target platforms. - MakeLocate $(1) : $(COMMON_PLATFORM_LOCATE_TARGET) ; + MakeLocate $(files) + : [ FDirName $(COMMON_PLATFORM_LOCATE_TARGET) $(subdir) ] ; } -rule MakeLocatePlatform +rule MakeLocatePlatform files : subdir { # The file is specific for the target platform, but # architecture independent. Usually the right rule for generated # sources, though sometimes sources can be architecture specific. - local files = $(1) ; local file ; for file in $(files) { + local directory ; if [ on $(file) return $(PLATFORM) ] = host { - MakeLocate $(file) : $(HOST_COMMON_ARCH_LOCATE_TARGET) ; + directory = $(HOST_COMMON_ARCH_LOCATE_TARGET) ; } else { - MakeLocate $(file) : $(TARGET_COMMON_ARCH_LOCATE_TARGET) ; + directory = $(TARGET_COMMON_ARCH_LOCATE_TARGET) ; } + MakeLocate $(file) : [ FDirName $(directory) $(subdir) ] ; } } -rule MakeLocateArch +rule MakeLocateArch files : subdir { # The file is platform+architecture specific, but is debug # level independent. This is usually the right rule for generated # architecture specific data or source files. - local files = $(1) ; local file ; for file in $(files) { + local directory ; if [ on $(file) return $(PLATFORM) ] = host { - MakeLocate $(file) : $(HOST_COMMON_DEBUG_LOCATE_TARGET) ; + directory = $(HOST_COMMON_DEBUG_LOCATE_TARGET) ; } else { - MakeLocate $(file) : $(TARGET_COMMON_DEBUG_LOCATE_TARGET) ; + directory = $(TARGET_COMMON_DEBUG_LOCATE_TARGET) ; } + MakeLocate $(file) : [ FDirName $(directory) $(subdir) ] ; } } -rule MakeLocateDebug +rule MakeLocateDebug files : subdir { # The file is platform+architecture+debug level specific. # That's what should be used for compiled code. - local files = $(1) ; local file ; for file in $(files) { + local directory ; on $(file) { if $(PLATFORM) = host { - MakeLocate $(file) : $(HOST_DEBUG_$(DEBUG)_LOCATE_TARGET) ; + directory = $(HOST_DEBUG_$(DEBUG)_LOCATE_TARGET) ; } else { - MakeLocate $(file) : $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) ; + directory = $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) ; } } + MakeLocate $(file) : [ FDirName $(directory) $(subdir) ] ; } } diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 157e148f68..3578fa7f8e 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -48,7 +48,7 @@ if [ IsOptionalHaikuImagePackageAdded BeOSCompatibility ] { if $(TARGET_ARCH) != x86 { Echo "No optional package BeOSCompatibility available for" "$(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { + } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 { Echo "No optional package BeOSCompatibility available for gcc4" ; } else { Echo "Warning: Adding BeOS compatibility symlinks. This will go away." @@ -83,9 +83,9 @@ if [ IsOptionalHaikuImagePackageAdded Bluetooth ] { # AddSymlinkToHaikuImage home config settings deskbar menu Preferences # : /boot/system/preferences/Bluetooth ; # if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] -# && $(HAIKU_GCC_VERSION[1]) in 2 4 { +# && $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 { # local arch = $(TARGET_ARCH) ; -# local abi = gcc$(HAIKU_GCC_VERSION[1]) ; +# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; # AddSymlinkToHaikuImage system develop lib # : /system/lib libbluetooth.so ; # } @@ -201,7 +201,7 @@ if [ IsOptionalHaikuImagePackageAdded NetFS ] { if [ IsOptionalHaikuImagePackageAdded UserlandFS ] { # TODO: Make this an actual package! # local arch = $(TARGET_ARCH) ; -# local abi = gcc$(HAIKU_GCC_VERSION[1]) ; +# local abi = gcc$(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; # # # kernel module # AddFilesToHaikuImage system add-ons kernel file_systems @@ -220,9 +220,9 @@ if [ IsOptionalHaikuImagePackageAdded UserlandFS ] { # # # development goodies # if [ IsOptionalHaikuImagePackageAdded DevelopmentMin ] { -# if ! ( $(HAIKU_GCC_VERSION[1]) in 2 4 ) { +# if ! ( $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) in 2 4 ) { # Exit "Optional package UserlandFS: Unsupported GCC version:" -# $(HAIKU_GCC_VERSION[1]) ; +# $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) ; # } # # # library symlinks @@ -255,9 +255,9 @@ if [ IsOptionalHaikuImagePackageAdded WebPositive ] { # TODO: Make this an actual package! # if $(TARGET_ARCH) != x86 && $(TARGET_ARCH) != x86_64 { # Echo "No optional package WebPositive available for $(TARGET_ARCH)" ; -# } else if $(HAIKU_GCC_VERSION[1]) < 4 { +# } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 4 { # Echo "No optional package WebPositive available for gcc2" ; -# } else if $(HAIKU_GCC_VERSION[1]) >= 4 { +# } else if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) >= 4 { # # TODO: Either we build a separate package for WebPositive or we # # incorporate it in haiku.hpkg. # AddFilesToHaikuHybridImage apps : WebPositive ; diff --git a/build/jam/OverriddenJamRules b/build/jam/OverriddenJamRules index 117a88ec34..00548e559e 100644 --- a/build/jam/OverriddenJamRules +++ b/build/jam/OverriddenJamRules @@ -22,8 +22,8 @@ rule Link LINK on $(1) = $(HOST_LINK) ; LINKFLAGS on $(1) = $(HOST_LINKFLAGS) [ on $(1) return $(LINKFLAGS) ] ; } else { - LINK on $(1) = $(TARGET_LINK) ; - LINKFLAGS on $(1) = $(TARGET_LINKFLAGS) + LINK on $(1) = $(TARGET_LINK_$(TARGET_PACKAGING_ARCH)) ; + LINKFLAGS on $(1) = $(TARGET_LINKFLAGS_$(TARGET_PACKAGING_ARCH)) [ on $(1) return $(LINKFLAGS) ] ; } @@ -106,8 +106,9 @@ rule Object } } else { - sysHeaders += $(TARGET_HDRS) ; - defines += $(TARGET_DEFINES) ; + sysHeaders += $(TARGET_HDRS_$(TARGET_PACKAGING_ARCH)) ; + defines += $(TARGET_DEFINES_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEFINES) ; } } @@ -194,13 +195,17 @@ rule As systemIncludesOption = $(HOST_SYSTEM_INCLUDES_OPTION) ; } else { - flags = [ on $(1) return $(TARGET_ASFLAGS) $(ASFLAGS) ] ; + flags = [ on $(1) return $(TARGET_ASFLAGS_$(architecture)) + $(ASFLAGS) ] ; - CC on $(1) = $(TARGET_CC) ; + CC on $(1) = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; - includesSeparator = $(TARGET_INCLUDES_SEPARATOR) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ; + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } Depends $(<) : $(>) ; @@ -294,18 +299,22 @@ rule Cc } else { # warning flags if $(WARNINGS) != 0 { - flags += $(TARGET_WARNING_CCFLAGS) ; + flags += $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) ; } # debug and other flags - flags += $(TARGET_CCFLAGS) $(TARGET_DEBUG_$(DEBUG)_CCFLAGS) + flags += $(TARGET_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEBUG_$(DEBUG)_CCFLAGS_$(TARGET_PACKAGING_ARCH)) $(SUBDIRCCFLAGS) $(CCFLAGS) ; - CC on $(1) = $(TARGET_CC) ; + CC on $(1) = $(TARGET_CC_$(TARGET_PACKAGING_ARCH)) ; - includesSeparator = $(TARGET_INCLUDES_SEPARATOR) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ; + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } CCFLAGS on $(<) = $(flags) ; @@ -361,18 +370,22 @@ rule C++ } else { # warning flags if $(WARNINGS) != 0 { - flags += $(TARGET_WARNING_C++FLAGS) ; + flags += $(TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH)) ; } # debug and other flags - flags += $(TARGET_C++FLAGS) $(TARGET_DEBUG_$(DEBUG)_C++FLAGS) + flags += $(TARGET_C++FLAGS_$(TARGET_PACKAGING_ARCH)) + $(TARGET_DEBUG_$(DEBUG)_C++FLAGS_$(TARGET_PACKAGING_ARCH)) $(SUBDIRC++FLAGS) $(C++FLAGS) ; - C++ on $(1) = $(TARGET_C++) ; + C++ on $(1) = $(TARGET_C++_$(TARGET_PACKAGING_ARCH)) ; - includesSeparator = $(TARGET_INCLUDES_SEPARATOR) ; - localIncludesOption = $(TARGET_LOCAL_INCLUDES_OPTION) ; - systemIncludesOption = $(TARGET_SYSTEM_INCLUDES_OPTION) ; + includesSeparator + = $(TARGET_INCLUDES_SEPARATOR_$(TARGET_PACKAGING_ARCH)) ; + localIncludesOption + = $(TARGET_LOCAL_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; + systemIncludesOption + = $(TARGET_SYSTEM_INCLUDES_OPTION_$(TARGET_PACKAGING_ARCH)) ; } C++FLAGS on $(<) = $(flags) ; @@ -424,8 +437,9 @@ rule LibraryFromObjects AR on $(_l) = $(HOST_AR) $(HOST_ARFLAGS) ; RANLIB on $(_l) = $(HOST_RANLIB) ; } else { - AR on $(_l) = $(TARGET_AR) $(TARGET_ARFLAGS) ; - RANLIB on $(_l) = $(TARGET_RANLIB) ; + AR on $(_l) = $(TARGET_AR_$(TARGET_PACKAGING_ARCH)) + $(TARGET_ARFLAGS_$(TARGET_PACKAGING_ARCH)) ; + RANLIB on $(_l) = $(TARGET_RANLIB_$(TARGET_PACKAGING_ARCH)) ; } # library depends on its member objects @@ -660,11 +674,13 @@ rule ObjectHdrs [ FSysIncludes $(SYSHDRS) : $(HOST_SYSTEM_INCLUDES_OPTION) ] ; } else { + local architecture = $(TARGET_PACKAGING_ARCH) ; fileHeaders = - [ FIncludes $(localHeaders) : $(TARGET_LOCAL_INCLUDES_OPTION) ] - $(TARGET_INCLUDES_SEPARATOR) + [ FIncludes $(localHeaders) + : $(TARGET_LOCAL_INCLUDES_OPTION_$(architecture)) ] + $(TARGET_INCLUDES_SEPARATOR_$(architecture)) [ FSysIncludes $(SYSHDRS) - : $(TARGET_SYSTEM_INCLUDES_OPTION) ] ; + : $(TARGET_SYSTEM_INCLUDES_OPTION_$(architecture)) ] ; } ASHDRS on $(file) = $(fileHeaders) ; diff --git a/build/jam/PackageRules b/build/jam/PackageRules index 563ae3e0d5..83ac072592 100644 --- a/build/jam/PackageRules +++ b/build/jam/PackageRules @@ -29,17 +29,17 @@ rule HaikuPackage package } -rule PreprocessPackageInfo source : directory +rule PreprocessPackageInfo source : directory : architecture { source = $(source:G=package-info-source) ; SEARCH on $(source) += - [ FDirName $(HAIKU_PACKAGE_INFOS_DIR) $(HAIKU_PACKAGING_ARCH) ] + [ FDirName $(HAIKU_PACKAGE_INFOS_DIR) $(architecture) ] [ FDirName $(HAIKU_PACKAGE_INFOS_DIR) any ] [ FDirName $(HAIKU_PACKAGE_INFOS_DIR) generic ] ; local target = $(source:BSG=package-info)-package-info ; - local defines = HAIKU_PACKAGING_ARCH=$(HAIKU_PACKAGING_ARCH) ; + local defines = HAIKU_PACKAGING_ARCH=$(architecture) ; if $(HAIKU_BOOTSTRAP_BUILD) { defines += HAIKU_BOOTSTRAP_BUILD ; target = $(target)-bootstrap ; @@ -64,14 +64,17 @@ actions PreprocessPackageInfo1 rule BuildHaikuPackage package : packageInfo { + local architecture = $(HAIKU_PACKAGING_ARCH) ; local grist = [ FHaikuPackageGrist $(package) ] ; - local tempDir = [ FDirName $(HAIKU_PACKAGES_BUILD_DIR) $(grist) ] ; + local tempDir + = [ FDirName $(HAIKU_PACKAGES_BUILD_DIR_$(architecture)) $(grist) ] ; local scriptDir = [ FDirName $(tempDir) scripts ] ; # build the package info and locate the package - packageInfo = [ PreprocessPackageInfo $(packageInfo) : $(tempDir) ] ; - MakeLocate $(package) : $(HAIKU_PACKAGES_DIR) ; + packageInfo = [ PreprocessPackageInfo $(packageInfo) : $(tempDir) + : $(architecture) ] ; + MakeLocate $(package) : $(HAIKU_PACKAGES_DIR_$(architecture)) ; Depends $(package) : $(packageInfo) ; # prepare the script that initializes the shell variables @@ -89,7 +92,7 @@ rule BuildHaikuPackage package : packageInfo : [ on $(package) return $(HAIKU_PACKAGE_COMPRESSION_LEVEL) ] ; AddVariableToScript $(script) : updateOnly : [ on $(package) return $(HAIKU_CONTAINER_UPDATE_ONLY) ] ; - AddVariableToScript $(script) : cc : $(TARGET_CC) ; + AddVariableToScript $(script) : cc : $(TARGET_CC_$(architecture)) ; AddTargetVariableToScript $(script) : addattr ; AddTargetVariableToScript $(script) : copyattr ; AddTargetVariableToScript $(script) : mime_db : mimeDB ; diff --git a/build/jam/RepositoryRules b/build/jam/RepositoryRules index 80a4e84021..1bebe6cdbc 100644 --- a/build/jam/RepositoryRules +++ b/build/jam/RepositoryRules @@ -78,7 +78,7 @@ rule AddRepositoryPackages repository : architecture : packages : sourcePackages rule PackageRepository repository : architecture : anyPackages : packages : sourcePackages : debugInfoPackages { - if $(architecture) != $(HAIKU_PACKAGING_ARCH) { + if $(architecture) != $(HAIKU_PACKAGING_ARCHS[1]) { return ; } @@ -136,19 +136,20 @@ rule RemotePackageRepository repository : architecture : repositoryUrl # build package list file local packageListFile = $(repository:G=repository-package-list)-packages ; - MakeLocate $(packageListFile) : $(HAIKU_PACKAGE_REPOSITORIES_DIR) ; + local repositoriesDir = $(HAIKU_PACKAGE_REPOSITORIES_DIR_$(architecture)) ; + MakeLocate $(packageListFile) : $(repositoriesDir) ; GeneratedRepositoryPackageList $(packageListFile) : $(repository) ; # build package list checksum file local packagesChecksumFile = $(repository:G=repository-package-checksum)-checksum ; - MakeLocate $(packagesChecksumFile) : $(HAIKU_PACKAGE_REPOSITORIES_DIR) ; + MakeLocate $(packagesChecksumFile) : $(repositoriesDir) ; Depends $(packagesChecksumFile) : $(packageListFile) ; ChecksumFileSHA256 $(packagesChecksumFile) : $(packageListFile) ; # download repository info file local repositoryInfo = $(repository:G=repository-info)-info ; - MakeLocate $(repositoryInfo) : $(HAIKU_PACKAGE_REPOSITORIES_DIR) ; + MakeLocate $(repositoryInfo) : $(repositoriesDir) ; local repoUrl = [ on $(repository) return $(HAIKU_REPOSITORY_URL) ] ; DownloadLocatedFile $(repositoryInfo) : "$(repoUrl)/`cat $source`/repo.info" @@ -156,7 +157,7 @@ rule RemotePackageRepository repository : architecture : repositoryUrl # download repository file local repositoryFile = $(repository:G=repository-cache) ; - MakeLocate $(repositoryFile) : $(HAIKU_PACKAGE_REPOSITORIES_DIR) ; + MakeLocate $(repositoryFile) : $(repositoriesDir) ; local repoUrl = [ on $(repository) return $(HAIKU_REPOSITORY_URL) ] ; DownloadLocatedFile $(repositoryFile) : "$(repoUrl)/`cat $source`/repo" @@ -164,7 +165,7 @@ rule RemotePackageRepository repository : architecture : repositoryUrl # build repository config file local repositoryConfig = $(repository:G=repository-config)-config ; - MakeLocate $(repositoryConfig) : $(HAIKU_PACKAGE_REPOSITORIES_DIR) ; + MakeLocate $(repositoryConfig) : $(repositoriesDir) ; RepositoryConfig $(repositoryConfig) : $(repositoryInfo) : $(packagesChecksumFile) : $(repository) ; @@ -314,9 +315,10 @@ OUTPUT_DIRECTORY="$(HAIKU_REPOSITORY_BUILD_DIRECTORY)" EOF # If we have cross tools, add the cross tools directory. - gcc=$(HAIKU_CC) + gcc=$(HAIKU_CC_$(HAIKU_PACKAGING_ARCH)) if [[ "$gcc" = /* ]]; then - if [ `basename $gcc` = $(HAIKU_GCC_MACHINE)-gcc ]; then + if [ `basename $gcc` = \ + $(HAIKU_GCC_MACHINE_$(HAIKU_PACKAGING_ARCH))-gcc ]; then dir=`dirname $gcc` dir=`dirname $dir` echo CROSS_TOOLS="$dir" >> $(1) @@ -344,17 +346,18 @@ rule BootstrapPackageRepository repository : architecture return ; } HAIKU_REPOSITORY_HAIKU_CROSS_DEVEL_PACKAGE on $(stage1PackageTargets) - = haiku_cross_devel_sysroot_stage1_$(HAIKU_PACKAGING_ARCH).hpkg ; + = haiku_cross_devel_sysroot_stage1_$(architecture).hpkg ; # add stage 2 packages local stage2PackageTargets = [ AddRepositoryPackages $(repository) : $(architecture) : $(packagesStage2) : $(sourcePackages) : $(debugInfoPackages) ] ; HAIKU_REPOSITORY_HAIKU_CROSS_DEVEL_PACKAGE on $(stage2PackageTargets) - = haiku_cross_devel_sysroot_$(HAIKU_PACKAGING_ARCH).hpkg ; + = haiku_cross_devel_sysroot_$(architecture).hpkg ; # prepare the config file for the HaikuPorts cross build - local outputDir = [ FDirName $(HAIKU_PACKAGE_REPOSITORIES_DIR) + local outputDir = [ FDirName + $(HAIKU_PACKAGE_REPOSITORIES_DIR_$(architecture)) $(repository:G=)-build ] ; local configFile = haikuports.conf ; configFile = $(configFile:G=repository-config-$(repository:G=)) ; @@ -362,6 +365,7 @@ rule BootstrapPackageRepository repository : architecture NoUpdate $(configFile) ; Depends $(configFile) : package mimeset mime_db ; HAIKU_REPOSITORY_BUILD_DIRECTORY on $(configFile) = $(outputDir) ; + HAIKU_PACKAGING_ARCH on $(configFile) = $(architecture) ; BuildBootstrapRepositoryConfig $(configFile) : package mimeset mime_db ; diff --git a/build/jam/UserBuildConfig.ReadMe b/build/jam/UserBuildConfig.ReadMe index e51cb7963b..f57f0d1824 100644 --- a/build/jam/UserBuildConfig.ReadMe +++ b/build/jam/UserBuildConfig.ReadMe @@ -20,7 +20,7 @@ Exit You must NOT copy UserBuildConfig.ReadMe directly but use parts of it! ; # CCFLAGS C++FLAGS DEBUG DEFINES HDRS LINKFLAGS OPTIM OPTIMIZE SYSHDRS # WARNINGS # HOST_WARNING_CCFLAGS HOST_WARNING_C++FLAGS -# TARGET_WARNING_CCFLAGS TARGET_WARNING_C++FLAGS +# TARGET_WARNING_CCFLAGS_ TARGET_WARNING_C++FLAGS_ # PLATFORM SUPPORTED_PLATFORMS # # The following examples would work analogously for any of these variables. diff --git a/build/jam/board/beagle/BoardSetup b/build/jam/board/beagle/BoardSetup index 72439f14f6..8932a1050c 100644 --- a/build/jam/board/beagle/BoardSetup +++ b/build/jam/board/beagle/BoardSetup @@ -64,7 +64,7 @@ HAIKU_BOARD_SDIMAGE_FILES = HAIKU_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; HAIKU_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; -HAIKU_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; -HAIKU_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; - - +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) + += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) + += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; diff --git a/build/jam/board/neo_freerunner/BoardSetup b/build/jam/board/neo_freerunner/BoardSetup index c3e99fd905..502f5103f4 100644 --- a/build/jam/board/neo_freerunner/BoardSetup +++ b/build/jam/board/neo_freerunner/BoardSetup @@ -71,15 +71,15 @@ HAIKU_BOARD_SDIMAGE_FILES = HAIKU_KERNEL_CCFLAGS += -mcpu=arm920t ; HAIKU_KERNEL_C++FLAGS += -mcpu=arm920t ; -HAIKU_CCFLAGS += -mcpu=arm920t ; -HAIKU_C++FLAGS += -mcpu=arm920t ; +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=arm920t ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=arm920t ; # Workaround for ld using 32k for alignment despite forcing it in the config... # should definitely not be needed! HAIKU_KERNEL_LINKFLAGS += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; -HAIKU_LINKFLAGS += +HAIKU_LINKFLAGS_$(HAIKU_PACKAGING_ARCH) += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; diff --git a/build/jam/board/overo/BoardSetup b/build/jam/board/overo/BoardSetup index a5290554cc..0eedb01ca3 100644 --- a/build/jam/board/overo/BoardSetup +++ b/build/jam/board/overo/BoardSetup @@ -60,7 +60,7 @@ HAIKU_BOARD_SDIMAGE_FILES = HAIKU_KERNEL_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; HAIKU_KERNEL_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; -HAIKU_CCFLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; -HAIKU_C++FLAGS += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; - - +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) + += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) + += -mcpu=cortex-a8 -mfpu=vfp -mfloat-abi=soft ; diff --git a/build/jam/board/raspberry_pi/BoardSetup b/build/jam/board/raspberry_pi/BoardSetup index ef568f2b09..46a6683281 100644 --- a/build/jam/board/raspberry_pi/BoardSetup +++ b/build/jam/board/raspberry_pi/BoardSetup @@ -48,15 +48,15 @@ HAIKU_BOARD_SDIMAGE_SIZE = 256 ; HAIKU_KERNEL_CCFLAGS += -mtune=arm1176jzf-s ; HAIKU_KERNEL_C++FLAGS += -mtune=arm1176jzf-s ; -HAIKU_CCFLAGS += -mtune=arm1176jzf-s ; -HAIKU_C++FLAGS += -mtune=arm1176jzf-s ; +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += -mtune=arm1176jzf-s ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) += -mtune=arm1176jzf-s ; # Workaround for ld using 32k for alignment despite forcing it in the config... # should definitely not be needed! HAIKU_KERNEL_LINKFLAGS += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; -HAIKU_LINKFLAGS += +HAIKU_LINKFLAGS_$(HAIKU_PACKAGING_ARCH) += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; diff --git a/build/jam/board/sam460ex/BoardSetup b/build/jam/board/sam460ex/BoardSetup index 1f0b3369b0..d5f7798de0 100644 --- a/build/jam/board/sam460ex/BoardSetup +++ b/build/jam/board/sam460ex/BoardSetup @@ -34,6 +34,5 @@ HAIKU_KERNEL_PIC_CCFLAGS += -mcpu=440fp -mtune=440fp ; HAIKU_KERNEL_PIC_C++FLAGS += -mcpu=440fp -mtune=440fp ; HAIKU_KERNEL_CCFLAGS += -mcpu=440fp -mtune=440fp ; HAIKU_KERNEL_C++FLAGS += -mcpu=440fp -mtune=440fp ; -HAIKU_CCFLAGS += -mcpu=440fp -mtune=440fp ; -HAIKU_C++FLAGS += -mcpu=440fp -mtune=440fp ; - +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=440fp -mtune=440fp ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=440fp -mtune=440fp ; diff --git a/build/jam/board/verdex/BoardSetup b/build/jam/board/verdex/BoardSetup index 4d56beefbb..274c97defb 100644 --- a/build/jam/board/verdex/BoardSetup +++ b/build/jam/board/verdex/BoardSetup @@ -70,15 +70,14 @@ HAIKU_BOARD_SDIMAGE_FILES = HAIKU_KERNEL_CCFLAGS += -mcpu=xscale ; HAIKU_KERNEL_C++FLAGS += -mcpu=xscale ; -HAIKU_CCFLAGS += -mcpu=xscale ; -HAIKU_C++FLAGS += -mcpu=xscale ; +HAIKU_CCFLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=xscale ; +HAIKU_C++FLAGS_$(HAIKU_PACKAGING_ARCH) += -mcpu=xscale ; # Workaround for ld using 32k for alignment despite forcing it in the config... # should definitely not be needed! HAIKU_KERNEL_LINKFLAGS += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; -HAIKU_LINKFLAGS += +HAIKU_LINKFLAGS_$(HAIKU_PACKAGING_ARCH) += -Wl,-z -Wl,max-page-size=0x1000 -Wl,-z -Wl,common-page-size=0x1000 ; - diff --git a/build/jam/images/HaikuImage b/build/jam/images/HaikuImage index 8fe70b27db..30b5e3b527 100644 --- a/build/jam/images/HaikuImage +++ b/build/jam/images/HaikuImage @@ -73,7 +73,8 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures libroot.so libscreensaver.so libtextencoding.so libtiff.so libtracker.so libtranslation.so - $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) + $(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH)) + $(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH)) ] ; PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures libalm.so diff --git a/build/jam/images/HaikuImageBootstrap b/build/jam/images/HaikuImageBootstrap index 996afceb24..df22436b11 100644 --- a/build/jam/images/HaikuImageBootstrap +++ b/build/jam/images/HaikuImageBootstrap @@ -69,7 +69,8 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures libroot.so libscreensaver.so libtextencoding.so libtracker.so libtranslation.so - $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) + $(HAIKU_SHARED_LIBSTDC++_$(HAIKU_PACKAGING_ARCH)) + $(HAIKU_SHARED_LIBSUPC++_$(HAIKU_PACKAGING_ARCH)) ] ; PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures libalm.so diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index 3f533cbf9b..5128ffcee4 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -1,3 +1,6 @@ +local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; + + local haikuPackage = haiku.hpkg ; HaikuPackage $(haikuPackage) ; @@ -89,7 +92,7 @@ AddLibrariesToPackage lib : $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ; # libnetwork.so replaces quite a few libraries SYSTEM_LIBS_LIBNETWORK_ALIASES = libsocket.so libbind.so libnet.so ; -if $(HAIKU_GCC_VERSION[1]) = 2 { +if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { local lib ; for lib in $(SYSTEM_LIBS_LIBNETWORK_ALIASES) { AddSymlinkToPackage lib : libnetwork.so : $(lib) ; diff --git a/build/jam/packages/HaikuBootstrap b/build/jam/packages/HaikuBootstrap index 771692eb8b..38cf1d39ed 100644 --- a/build/jam/packages/HaikuBootstrap +++ b/build/jam/packages/HaikuBootstrap @@ -1,3 +1,6 @@ +local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; + + local haikuPackage = haiku.hpkg ; HaikuPackage $(haikuPackage) ; @@ -88,7 +91,7 @@ AddLibrariesToPackage lib : $(SYSTEM_LIBS) $(PRIVATE_SYSTEM_LIBS) ; # libnetwork.so replaces quite a few libraries SYSTEM_LIBS_LIBNETWORK_ALIASES = libsocket.so libbind.so libnet.so ; -if $(HAIKU_GCC_VERSION[1]) = 2 { +if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { local lib ; for lib in $(SYSTEM_LIBS_LIBNETWORK_ALIASES) { AddSymlinkToPackage lib : libnetwork.so : $(lib) ; diff --git a/build/jam/packages/HaikuCrossDevel b/build/jam/packages/HaikuCrossDevel index d99380702a..ba2099fcdb 100644 --- a/build/jam/packages/HaikuCrossDevel +++ b/build/jam/packages/HaikuCrossDevel @@ -4,44 +4,54 @@ # The main use of this package is to provide HaikuPorter with a development # environment for a cross-build Haiku platform. +local architecture = $(TARGET_PACKAGING_ARCH) ; +local isPrimaryArchitecture = [ MultiArchIfPrimary 1 : ] ; + + local additionalLibraries_stage1 ; -local additionalLibraries = libbe.so libnetwork.so libpackage.so ; +local additionalLibraries + = [ MultiArchDefaultGristFiles libbe.so libnetwork.so libpackage.so ] ; local stage ; for stage in _stage1 "" { # first create the actual cross development package local haikuCrossDevelSysrootPackage - = haiku_cross_devel_sysroot$(stage)_$(HAIKU_PACKAGING_ARCH).hpkg ; + = haiku_cross_devel_sysroot$(stage)_$(architecture).hpkg ; HaikuPackage $(haikuCrossDevelSysrootPackage) ; local developCrossLibDirTokens = develop lib ; # glue code AddFilesToPackage $(developCrossLibDirTokens) : - crti.o - crtn.o - init_term_dyn.o - start_dyn.o - haiku_version_glue.o - ; + crti.o + crtn.o + init_term_dyn.o + start_dyn.o + haiku_version_glue.o + ; # kernel - AddFilesToPackage $(developCrossLibDirTokens) : kernel.so : _KERNEL_ ; + if $(isPrimaryArchitecture) { + AddFilesToPackage $(developCrossLibDirTokens) : kernel.so : _KERNEL_ ; + } # libraries AddLibrariesToPackage $(developCrossLibDirTokens) : - libbsd.so - libroot.so - $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) + [ MultiArchDefaultGristFiles libbsd.so ] + [ MultiArchDefaultGristFiles libroot.so : revisioned ] + $(HAIKU_SHARED_LIBSTDC++_$(architecture)) + $(HAIKU_SHARED_LIBSUPC++_$(architecture)) $(additionalLibraries$(stage)) - ; + ; # static libraries - AddFilesToPackage $(developCrossLibDirTokens) : liblocalestub.a ; + AddFilesToPackage $(developCrossLibDirTokens) + : <$(architecture)>liblocalestub.a ; # the POSIX error code mapper library - AddFilesToPackage $(developCrossLibDirTokens) : libposix_error_mapper.a ; + AddFilesToPackage $(developCrossLibDirTokens) + : [ MultiArchDefaultGristFiles libposix_error_mapper.a ] ; # headers local developCrossHeadersDirTokens = develop headers ; @@ -58,7 +68,7 @@ for stage in _stage1 "" { } # cpp headers - if $(HAIKU_GCC_VERSION[1]) = 2 { + if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { # GCC 2 only -- for GCC 4 they come with the DevelopmentBase package CopyDirectoryToPackage $(developCrossHeadersDirTokens) c++ : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ; @@ -73,7 +83,7 @@ for stage in _stage1 "" { # it when needed. local haikuCrossDevelPackage - = haiku_cross_devel$(stage)_$(HAIKU_PACKAGING_ARCH).hpkg ; + = haiku_cross_devel$(stage)_$(architecture).hpkg ; HaikuPackage $(haikuCrossDevelPackage) ; # add the wrapped package diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index 478d17135a..52e2bfe14f 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -1,3 +1,6 @@ +local architecture = $(HAIKU_PACKAGING_ARCHS[1]) ; + + local haikuDevelPackage = haiku_devel.hpkg ; HaikuPackage $(haikuDevelPackage) ; @@ -6,12 +9,12 @@ local developDirTokens = develop ; # glue code AddFilesToPackage $(developDirTokens) lib : - crti.o - crtn.o - init_term_dyn.o - start_dyn.o - haiku_version_glue.o -; + crti.o + crtn.o + init_term_dyn.o + start_dyn.o + haiku_version_glue.o + ; # kernel AddFilesToPackage $(developDirTokens) lib : kernel.so : _KERNEL_ ; @@ -33,7 +36,7 @@ for lib in $(SYSTEM_LIBS) $(developmentLibs) { } # static libraries -AddFilesToPackage $(developDirTokens) lib : liblocalestub.a ; +AddFilesToPackage $(developDirTokens) lib : <$(architecture)>liblocalestub.a ; # the POSIX error code mapper library AddFilesToPackage $(developDirTokens) lib : libposix_error_mapper.a ; @@ -73,7 +76,7 @@ if ! $(HAIKU_BOOTSTRAP_BUILD) { } # cpp headers -if $(HAIKU_GCC_VERSION[1]) = 2 { +if $(HAIKU_GCC_VERSION_$(architecture)[1]) = 2 { # GCC 2 only -- for GCC 4 they come with the DevelopmentBase package CopyDirectoryToPackage $(developDirTokens) headers c++ : [ FDirName $(HAIKU_TOP) headers cpp ] : 2.95.3 ; diff --git a/src/add-ons/disk_systems/bfs/Jamfile b/src/add-ons/disk_systems/bfs/Jamfile index f59ff553bd..9540539e83 100644 --- a/src/add-ons/disk_systems/bfs/Jamfile +++ b/src/add-ons/disk_systems/bfs/Jamfile @@ -13,7 +13,7 @@ Addon bfs : bfs_disk_system.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) libshared.a + : be localestub $(TARGET_LIBSUPC++) libshared.a ; DoCatalogs bfs : diff --git a/src/add-ons/disk_systems/intel/Jamfile b/src/add-ons/disk_systems/intel/Jamfile index 182225ce87..99a6f9d037 100644 --- a/src/add-ons/disk_systems/intel/Jamfile +++ b/src/add-ons/disk_systems/intel/Jamfile @@ -23,7 +23,7 @@ Addon intel : # kernel sources PartitionMap.cpp - : be libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libshared.a localestub $(TARGET_LIBSUPC++) ; DoCatalogs intel : diff --git a/src/add-ons/disk_systems/ntfs/Jamfile b/src/add-ons/disk_systems/ntfs/Jamfile index 4abdcfbb85..9dc3ab3d21 100644 --- a/src/add-ons/disk_systems/ntfs/Jamfile +++ b/src/add-ons/disk_systems/ntfs/Jamfile @@ -11,7 +11,7 @@ Addon ntfs : NTFSAddOn.cpp InitializeParameterEditor.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) libshared.a + : be localestub $(TARGET_LIBSUPC++) libshared.a ; DoCatalogs ntfs : diff --git a/src/add-ons/input_server/devices/keyboard/Jamfile b/src/add-ons/input_server/devices/keyboard/Jamfile index 0f199cb41d..d0a21bdb93 100644 --- a/src/add-ons/input_server/devices/keyboard/Jamfile +++ b/src/add-ons/input_server/devices/keyboard/Jamfile @@ -14,7 +14,7 @@ Addon keyboard : TeamMonitorWindow.cpp TeamListItem.cpp - : input_server be libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) ; + : input_server be libshared.a localestub $(TARGET_LIBSUPC++) ; DoCatalogs keyboard : x-vnd.Haiku-KeyboardInputServerDevice diff --git a/src/add-ons/input_server/methods/canna/lib/Jamfile b/src/add-ons/input_server/methods/canna/lib/Jamfile index c81e4ad418..1b14facafa 100644 --- a/src/add-ons/input_server/methods/canna/lib/Jamfile +++ b/src/add-ons/input_server/methods/canna/lib/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src add-ons input_server methods canna lib ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wmissing-prototypes ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wmissing-prototypes ] ; SubDirCcFlags -x c++ -ansi -trigraphs -funsigned-char -funsigned-bitfields -w -Wno-multichar -Wno-ctor-dtor-privacy -pedantic -Wno-long-long -Woverloaded-virtual -D_BUILDING_CANNALIB -D_WCHAR_T ; diff --git a/src/add-ons/input_server/methods/canna/rk/Jamfile b/src/add-ons/input_server/methods/canna/rk/Jamfile index 504a097f98..b08adcf105 100644 --- a/src/add-ons/input_server/methods/canna/rk/Jamfile +++ b/src/add-ons/input_server/methods/canna/rk/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src add-ons input_server methods canna rk ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wmissing-prototypes ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wmissing-prototypes ] ; SubDirCcFlags -x c++ -ansi -trigraphs -funsigned-char -funsigned-bitfields -w -Wno-multichar -Wno-ctor-dtor-privacy -pedantic -Wno-long-long -Woverloaded-virtual -D_BUILDING_CANNALIB -D_WCHAR_T ; diff --git a/src/add-ons/kernel/bus_managers/pci/Jamfile b/src/add-ons/kernel/bus_managers/pci/Jamfile index c4ea478e92..2e3e1f4bf3 100644 --- a/src/add-ons/kernel/bus_managers/pci/Jamfile +++ b/src/add-ons/kernel/bus_managers/pci/Jamfile @@ -17,7 +17,8 @@ KernelAddon pci : # pci_info.cpp currently needs pcihdr.h so we make its path available and adds dependency ObjectHdrs [ FGristFiles pci_info$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) apps devices ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) apps + devices ] ; Includes [ FGristFiles pci_info.cpp ] : pcihdr.h ; SubInclude HAIKU_TOP src add-ons kernel bus_managers pci arch diff --git a/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile index fc6c16e028..a68d82f21f 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/3com/dev/mii/Jamfile @@ -17,7 +17,7 @@ KernelStaticLibrary 3com_mii.a ; ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat - freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles bmtphy.c ukphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile b/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile index 91aab0c9a8..ba110e7f01 100644 --- a/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile +++ b/src/add-ons/kernel/drivers/network/3com/dev/xl/Jamfile @@ -16,7 +16,7 @@ KernelAddon 3com : ; ObjectHdrs [ FGristFiles xlphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat - freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles xlphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/Jamfile index bfa0feb0fe..f704fd1d3c 100644 --- a/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/attansic_l1/dev/mii/Jamfile @@ -14,7 +14,7 @@ KernelStaticLibrary atl1_mii.a ; ObjectHdrs [ FGristFiles atphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat - freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles atphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/Jamfile index 5d7d9b646f..97ed86e740 100644 --- a/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/broadcom440x/dev/mii/Jamfile @@ -14,5 +14,6 @@ KernelStaticLibrary broadcom440x_mii.a ; ObjectHdrs [ FGristFiles bmtphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles bmtphy.c ] : miidevs.h ; \ No newline at end of file diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/Jamfile b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/Jamfile index 879a3c449f..ac4f0ad1f1 100644 --- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/Jamfile +++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/bge/Jamfile @@ -16,5 +16,6 @@ KernelAddon broadcom570x : ; ObjectHdrs [ FGristFiles if_bge$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles if_bge.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/Jamfile index e05edf1cf0..f748c17141 100644 --- a/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/broadcom570x/dev/mii/Jamfile @@ -16,5 +16,6 @@ KernelStaticLibrary broadcom570x_mii.a ; ObjectHdrs [ FGristFiles brgphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles brgphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/Jamfile b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/Jamfile index d10426a06d..20504bd9ed 100644 --- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/Jamfile +++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/dc/Jamfile @@ -18,6 +18,7 @@ KernelAddon dec21xxx : ; ObjectHdrs [ FGristFiles dcphy$(SUFOBJ) pnphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles dcphy.c pnphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/Jamfile b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/Jamfile index a5f1330164..95f28521c3 100644 --- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/Jamfile +++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/de/Jamfile @@ -15,4 +15,5 @@ KernelStaticLibrary dec21xxx_de.a ; ObjectHdrs [ FGristFiles if_de$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; diff --git a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/Jamfile index b1c84942a8..84b7131b37 100644 --- a/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/dec21xxx/dev/mii/Jamfile @@ -18,6 +18,7 @@ KernelStaticLibrary dec21xxx_mii.a ; ObjectHdrs [ FGristFiles acphy$(SUFOBJ) amphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles acphy.c amphy.c amphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/ipro100/dev/fxp/Jamfile b/src/add-ons/kernel/drivers/network/ipro100/dev/fxp/Jamfile index df573cb434..7900525bf0 100644 --- a/src/add-ons/kernel/drivers/network/ipro100/dev/fxp/Jamfile +++ b/src/add-ons/kernel/drivers/network/ipro100/dev/fxp/Jamfile @@ -16,5 +16,6 @@ KernelAddon ipro100 : ; ObjectHdrs [ FGristFiles inphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles inphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/jmicron2x0/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/jmicron2x0/dev/mii/Jamfile index 80b3ccb1bd..842cc68cee 100644 --- a/src/add-ons/kernel/drivers/network/jmicron2x0/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/jmicron2x0/dev/mii/Jamfile @@ -14,5 +14,6 @@ KernelStaticLibrary jmicron2x0_mii.a ; ObjectHdrs [ FGristFiles jmphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles jmphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/marvell_yukon/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/marvell_yukon/dev/mii/Jamfile index 1f0a4a7bee..5f9d3f5d42 100644 --- a/src/add-ons/kernel/drivers/network/marvell_yukon/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/marvell_yukon/dev/mii/Jamfile @@ -16,5 +16,6 @@ KernelStaticLibrary marvell_yukon_mii.a ; ObjectHdrs [ FGristFiles e1000phy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles e1000phy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/nforce/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/nforce/dev/mii/Jamfile index 73bbf2ae80..ab18fbad60 100644 --- a/src/add-ons/kernel/drivers/network/nforce/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/nforce/dev/mii/Jamfile @@ -16,5 +16,6 @@ KernelStaticLibrary nforce_mii.a ; ObjectHdrs [ FGristFiles ciphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles ciphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/pegasus/Jamfile b/src/add-ons/kernel/drivers/network/pegasus/Jamfile index 2ebd460849..ba022920f9 100644 --- a/src/add-ons/kernel/drivers/network/pegasus/Jamfile +++ b/src/add-ons/kernel/drivers/network/pegasus/Jamfile @@ -15,5 +15,6 @@ KernelAddon pegasus : # driver.c currently needs usbdevs.h so we make its path available and adds dependency ObjectHdrs [ FGristFiles driver$(SUFOBJ) if_aue$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) apps devices ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) apps + devices ] ; Includes [ FGristFiles driver.c if_aue.c ] : usbdevs.h ; diff --git a/src/add-ons/kernel/drivers/network/rdc/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/rdc/dev/mii/Jamfile index c9ee04f23e..ebbbf7434d 100644 --- a/src/add-ons/kernel/drivers/network/rdc/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/rdc/dev/mii/Jamfile @@ -14,5 +14,6 @@ KernelStaticLibrary rdc_mii.a ; ObjectHdrs [ FGristFiles rdcphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles rdcphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/rtl8139/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/rtl8139/dev/mii/Jamfile index 63d7644920..d5cca5ff8d 100644 --- a/src/add-ons/kernel/drivers/network/rtl8139/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/rtl8139/dev/mii/Jamfile @@ -13,6 +13,7 @@ KernelStaticLibrary rtl8139_mii.a : rlphy.c ; -ObjectHdrs [ FGristFiles rlphy$(SUFOBJ) ] : [ FDirName - $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; +ObjectHdrs [ FGristFiles rlphy$(SUFOBJ) ] + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles rlphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/Jamfile index 9e2e4babf8..831c716c76 100644 --- a/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/rtl81xx/dev/mii/Jamfile @@ -17,7 +17,8 @@ KernelStaticLibrary rtl81xx_mii.a : SEARCH on [ FGristFiles rlphy.c ] = [ FDirName $(HAIKU_TOP) src add-ons kernel drivers network rtl8139 dev mii ] ; -ObjectHdrs [ FGristFiles rgephy$(SUFOBJ) rlphy$(SUFOBJ) ] : [ FDirName - $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; +ObjectHdrs [ FGristFiles rgephy$(SUFOBJ) rlphy$(SUFOBJ) ] + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles rgephy.c rlphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/syskonnect/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/syskonnect/dev/mii/Jamfile index 97ac691520..a8725cc1de 100644 --- a/src/add-ons/kernel/drivers/network/syskonnect/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/syskonnect/dev/mii/Jamfile @@ -17,6 +17,7 @@ KernelStaticLibrary syskonnect_mii.a ; ObjectHdrs [ FGristFiles e1000phy$(SUFOBJ) ukphy$(SUFOBJ) xmphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles e1000phy.c ukphy.c xmphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile index 523901a739..86abc49e70 100644 --- a/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/via_rhine/dev/mii/Jamfile @@ -16,6 +16,7 @@ KernelStaticLibrary via_rhine_mii.a ; ObjectHdrs [ FGristFiles ciphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles ciphy.c ukphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/drivers/network/vt612x/dev/mii/Jamfile b/src/add-ons/kernel/drivers/network/vt612x/dev/mii/Jamfile index 10df624495..394fa38ff7 100644 --- a/src/add-ons/kernel/drivers/network/vt612x/dev/mii/Jamfile +++ b/src/add-ons/kernel/drivers/network/vt612x/dev/mii/Jamfile @@ -16,6 +16,7 @@ KernelStaticLibrary vt612x_mii.a ; ObjectHdrs [ FGristFiles ciphy$(SUFOBJ) ukphy$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) libs compat freebsd_network ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) libs + compat freebsd_network ] ; Includes [ FGristFiles ciphy.c ukphy.c ] : miidevs.h ; diff --git a/src/add-ons/kernel/file_systems/bindfs/Jamfile b/src/add-ons/kernel/file_systems/bindfs/Jamfile index 4e6892d178..351bf9dbef 100644 --- a/src/add-ons/kernel/file_systems/bindfs/Jamfile +++ b/src/add-ons/kernel/file_systems/bindfs/Jamfile @@ -16,7 +16,7 @@ HAIKU_BIND_FS_SOURCES = KernelAddon bindfs : $(HAIKU_BIND_FS_SOURCES) - : $(HAIKU_KERNEL_LIBSUPC++) + : $(TARGET_KERNEL_LIBSUPC++) ; diff --git a/src/add-ons/kernel/file_systems/packagefs/Jamfile b/src/add-ons/kernel/file_systems/packagefs/Jamfile index 5102cd4be9..d03b2a8236 100644 --- a/src/add-ons/kernel/file_systems/packagefs/Jamfile +++ b/src/add-ons/kernel/file_systems/packagefs/Jamfile @@ -123,7 +123,7 @@ KernelAddon packagefs $(HAIKU_PACKAGE_FS_PACKAGE_READER_SOURCES_V1) $(libSharedSources) - : $(HAIKU_STATIC_LIBSUPC++) kernel_libz.a + : $(TARGET_KERNEL_LIBSUPC++) kernel_libz.a ; diff --git a/src/add-ons/kernel/file_systems/ramfs/Jamfile b/src/add-ons/kernel/file_systems/ramfs/Jamfile index 5e04563c3a..5e02b489d9 100644 --- a/src/add-ons/kernel/file_systems/ramfs/Jamfile +++ b/src/add-ons/kernel/file_systems/ramfs/Jamfile @@ -45,5 +45,5 @@ KernelAddon ramfs SymLink.cpp Volume.cpp - : $(HAIKU_KERNEL_LIBSUPC++) + : $(TARGET_KERNEL_LIBSUPC++) ; diff --git a/src/add-ons/kernel/file_systems/reiserfs/Jamfile b/src/add-ons/kernel/file_systems/reiserfs/Jamfile index b28d32fc07..67b1552ffd 100644 --- a/src/add-ons/kernel/file_systems/reiserfs/Jamfile +++ b/src/add-ons/kernel/file_systems/reiserfs/Jamfile @@ -28,5 +28,5 @@ KernelAddon reiserfs VNode.cpp Volume.cpp - : $(HAIKU_KERNEL_LIBSUPC++) + : $(TARGET_KERNEL_LIBSUPC++) ; diff --git a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Jamfile b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Jamfile index 7c842e7f73..c44b4b8a07 100644 --- a/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Jamfile +++ b/src/add-ons/kernel/file_systems/userlandfs/kernel_add_on/Jamfile @@ -41,5 +41,5 @@ KernelAddon userlandfs UserlandFS.cpp Volume.cpp - : $(HAIKU_KERNEL_LIBSUPC++) + : $(TARGET_KERNEL_LIBSUPC++) ; diff --git a/src/add-ons/mail_daemon/inbound_filters/match_header/Jamfile b/src/add-ons/mail_daemon/inbound_filters/match_header/Jamfile index 98e4c72cf5..347ee33f3c 100644 --- a/src/add-ons/mail_daemon/inbound_filters/match_header/Jamfile +++ b/src/add-ons/mail_daemon/inbound_filters/match_header/Jamfile @@ -13,7 +13,7 @@ Addon MatchHeader RuleFilter.cpp StringMatcher.cpp : - be libmail.so $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + be libmail.so $(TARGET_LIBSUPC++) localestub ; DoCatalogs MatchHeader diff --git a/src/add-ons/mail_daemon/inbound_filters/notifier/Jamfile b/src/add-ons/mail_daemon/inbound_filters/notifier/Jamfile index ffef889ef7..68f2349888 100644 --- a/src/add-ons/mail_daemon/inbound_filters/notifier/Jamfile +++ b/src/add-ons/mail_daemon/inbound_filters/notifier/Jamfile @@ -11,7 +11,7 @@ Addon NewMailNotification : filter.cpp ConfigView.cpp : - be libmail.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libmail.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs NewMailNotification : diff --git a/src/add-ons/mail_daemon/inbound_filters/spam_filter/Jamfile b/src/add-ons/mail_daemon/inbound_filters/spam_filter/Jamfile index e3a5250900..e471ac764d 100644 --- a/src/add-ons/mail_daemon/inbound_filters/spam_filter/Jamfile +++ b/src/add-ons/mail_daemon/inbound_filters/spam_filter/Jamfile @@ -12,7 +12,7 @@ Addon SpamFilter : SpamFilterConfig.cpp SpamFilter.cpp : - be libmail.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libmail.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs SpamFilter diff --git a/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile b/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile index 526fffc628..5781724f4c 100644 --- a/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile +++ b/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile @@ -42,7 +42,7 @@ Addon IMAP : $(sources) : - be libmail.so $(HAIKU_LOCALE_LIBS) $(TARGET_NETWORK_LIBS) libalm.so + be libmail.so localestub $(TARGET_NETWORK_LIBS) libalm.so libshared.a $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++) ; diff --git a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile index 6c020d28db..130a4b7f7a 100644 --- a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile +++ b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile @@ -33,7 +33,7 @@ AddResources POP3 : POP3.rdef ; Addon POP3 : $(sources) - : be libbnetapi.so libmail.so $(HAIKU_LOCALE_LIBS) + : be libbnetapi.so libmail.so localestub [ BuildFeatureAttribute openssl : libraries ] $(TARGET_LIBSUPC++) $(TARGET_NETWORK_LIBS) ; diff --git a/src/add-ons/mail_daemon/outbound_filters/fortune/Jamfile b/src/add-ons/mail_daemon/outbound_filters/fortune/Jamfile index 5ece11f81c..c672ec2857 100644 --- a/src/add-ons/mail_daemon/outbound_filters/fortune/Jamfile +++ b/src/add-ons/mail_daemon/outbound_filters/fortune/Jamfile @@ -12,7 +12,7 @@ Addon Fortune : ConfigView.cpp filter.cpp : - be libmail.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libmail.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs Fortune : diff --git a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile index 41f742f6ab..a1b9c26f3a 100644 --- a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile +++ b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile @@ -30,7 +30,7 @@ AddResources SMTP : SMTP.rdef ; Addon SMTP : $(sources) : be libmail.so $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) [ BuildFeatureAttribute openssl : libraries ] + localestub [ BuildFeatureAttribute openssl : libraries ] ; DoCatalogs SMTP : diff --git a/src/add-ons/media/media-add-ons/mixer/Jamfile b/src/add-ons/media/media-add-ons/mixer/Jamfile index 94df20c1ee..dee9631fd7 100644 --- a/src/add-ons/media/media-add-ons/mixer/Jamfile +++ b/src/add-ons/media/media-add-ons/mixer/Jamfile @@ -15,7 +15,7 @@ Addon mixer.media_addon : MixerSettings.cpp MixerUtils.cpp Resampler.cpp - : be media $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be media $(TARGET_LIBSUPC++) localestub ; DoCatalogs mixer.media_addon diff --git a/src/add-ons/media/media-add-ons/multi_audio/Jamfile b/src/add-ons/media/media-add-ons/multi_audio/Jamfile index 65b8bc1d3a..a04fa165a4 100644 --- a/src/add-ons/media/media-add-ons/multi_audio/Jamfile +++ b/src/add-ons/media/media-add-ons/multi_audio/Jamfile @@ -17,7 +17,7 @@ Addon hmulti_audio.media_addon : MultiAudioUtility.cpp Resampler.cpp TimeComputer.cpp - : be media $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be media $(TARGET_LIBSUPC++) localestub ; DoCatalogs hmulti_audio.media_addon diff --git a/src/add-ons/screen_savers/butterfly/Jamfile b/src/add-ons/screen_savers/butterfly/Jamfile index aa86f7a729..ef1ea4d569 100644 --- a/src/add-ons/screen_savers/butterfly/Jamfile +++ b/src/add-ons/screen_savers/butterfly/Jamfile @@ -7,7 +7,7 @@ AddResources Butterfly : Butterfly.rdef ; ScreenSaver Butterfly : Butterfly.cpp - : be screensaver $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be screensaver localestub $(TARGET_LIBSUPC++) ; DoCatalogs Butterfly : diff --git a/src/add-ons/screen_savers/debugnow/Jamfile b/src/add-ons/screen_savers/debugnow/Jamfile index ddbe66c555..e5f3004e5e 100644 --- a/src/add-ons/screen_savers/debugnow/Jamfile +++ b/src/add-ons/screen_savers/debugnow/Jamfile @@ -9,7 +9,7 @@ AddResources DebugNow : DebugNow.rdef ; ScreenSaver DebugNow : DebugNow.cpp : - be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs DebugNow : diff --git a/src/add-ons/screen_savers/flurry/Jamfile b/src/add-ons/screen_savers/flurry/Jamfile index 7248fa1812..73a52b2701 100644 --- a/src/add-ons/screen_savers/flurry/Jamfile +++ b/src/add-ons/screen_savers/flurry/Jamfile @@ -21,7 +21,7 @@ Includes [ FGristFiles $(sources) ] : ScreenSaver Flurry : $(sources) : - be screensaver GL libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be screensaver GL libshared.a localestub $(TARGET_LIBSUPC++) [ BuildFeatureAttribute glu : library ] ; diff --git a/src/add-ons/screen_savers/glife/Jamfile b/src/add-ons/screen_savers/glife/Jamfile index 4bb4f9079f..e2f374d138 100644 --- a/src/add-ons/screen_savers/glife/Jamfile +++ b/src/add-ons/screen_savers/glife/Jamfile @@ -25,7 +25,7 @@ AddResources GLife : GLife.rdef ; ScreenSaver GLife : $(sources) : - be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be screensaver GL localestub $(TARGET_LIBSUPC++) [ BuildFeatureAttribute glu : library ] ; diff --git a/src/add-ons/screen_savers/gravity/Jamfile b/src/add-ons/screen_savers/gravity/Jamfile index ff680d18f0..9364d76ca9 100644 --- a/src/add-ons/screen_savers/gravity/Jamfile +++ b/src/add-ons/screen_savers/gravity/Jamfile @@ -3,7 +3,7 @@ UseBuildFeatureHeaders glu ; UseBuildFeatureHeaders mesa ; # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { SubDirC++Flags --no-warnings ; } @@ -28,7 +28,7 @@ Includes [ FGristFiles $(sources) ] : ScreenSaver Gravity : $(sources) : - be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + be screensaver GL localestub $(TARGET_LIBSTDC++) [ BuildFeatureAttribute glu : library ] ; diff --git a/src/add-ons/screen_savers/haiku/Jamfile b/src/add-ons/screen_savers/haiku/Jamfile index bc60b0bb0e..3ee172e0bb 100644 --- a/src/add-ons/screen_savers/haiku/Jamfile +++ b/src/add-ons/screen_savers/haiku/Jamfile @@ -9,7 +9,7 @@ AddResources Haiku : ScreenSaver.rdef ; Addon Haiku : ScreenSaver.cpp - : be screensaver $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be screensaver localestub $(TARGET_LIBSUPC++) ; DoCatalogs Haiku : diff --git a/src/add-ons/screen_savers/icons/Jamfile b/src/add-ons/screen_savers/icons/Jamfile index b0287610de..887ce9790d 100644 --- a/src/add-ons/screen_savers/icons/Jamfile +++ b/src/add-ons/screen_savers/icons/Jamfile @@ -7,7 +7,7 @@ AddResources Icons : Icons.rdef ; ScreenSaver Icons : IconDisplay.cpp IconsSaver.cpp : - be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs Icons : diff --git a/src/add-ons/screen_savers/ifs/Jamfile b/src/add-ons/screen_savers/ifs/Jamfile index 18b613f175..72a6816d10 100644 --- a/src/add-ons/screen_savers/ifs/Jamfile +++ b/src/add-ons/screen_savers/ifs/Jamfile @@ -8,7 +8,7 @@ ScreenSaver IFS : IFS.cpp IFSSaver.cpp - : be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs IFS : diff --git a/src/add-ons/screen_savers/leaves/Jamfile b/src/add-ons/screen_savers/leaves/Jamfile index 2c87a6375c..3ce6e228fd 100644 --- a/src/add-ons/screen_savers/leaves/Jamfile +++ b/src/add-ons/screen_savers/leaves/Jamfile @@ -4,7 +4,7 @@ AddResources Leaves : Leaves.rdef ; ScreenSaver Leaves : Leaves.cpp : - be screensaver $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + be screensaver $(TARGET_LIBSUPC++) localestub ; DoCatalogs Leaves : diff --git a/src/add-ons/screen_savers/message/Jamfile b/src/add-ons/screen_savers/message/Jamfile index f69a1d3f2d..c97a6895ae 100644 --- a/src/add-ons/screen_savers/message/Jamfile +++ b/src/add-ons/screen_savers/message/Jamfile @@ -11,7 +11,7 @@ AddResources Message : Message.rdef ; ScreenSaver Message : Message.cpp : - be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) ; + be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs Message : x-vnd.Haiku-MessageScreensaver diff --git a/src/add-ons/screen_savers/simpleclock/Jamfile b/src/add-ons/screen_savers/simpleclock/Jamfile index 8948149157..63bf2220c2 100644 --- a/src/add-ons/screen_savers/simpleclock/Jamfile +++ b/src/add-ons/screen_savers/simpleclock/Jamfile @@ -7,7 +7,7 @@ AddResources Message : SimpleClock.rdef ; ScreenSaver SimpleClock : SimpleClock.cpp - : be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs SimpleClock : diff --git a/src/add-ons/screen_savers/spider/Jamfile b/src/add-ons/screen_savers/spider/Jamfile index e1d7c67b04..6c27fb1e1f 100644 --- a/src/add-ons/screen_savers/spider/Jamfile +++ b/src/add-ons/screen_savers/spider/Jamfile @@ -9,7 +9,7 @@ ScreenSaver Spider : PolygonQueue.cpp SpiderSaver.cpp - : be libscreensaver.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libscreensaver.so localestub $(TARGET_LIBSUPC++) ; DoCatalogs Spider : diff --git a/src/add-ons/tracker/zipomatic/Jamfile b/src/add-ons/tracker/zipomatic/Jamfile index f974e054c1..323aea06de 100644 --- a/src/add-ons/tracker/zipomatic/Jamfile +++ b/src/add-ons/tracker/zipomatic/Jamfile @@ -9,7 +9,7 @@ Application ZipOMatic-Z : ZipOMaticWindow.cpp ZipperThread.cpp - : be tracker $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker $(TARGET_LIBSUPC++) localestub : ZipOMatic.rdef ; diff --git a/src/add-ons/translators/bmp/Jamfile b/src/add-ons/translators/bmp/Jamfile index 27ff8b53c7..981793c9c3 100644 --- a/src/add-ons/translators/bmp/Jamfile +++ b/src/add-ons/translators/bmp/Jamfile @@ -11,7 +11,7 @@ Translator BMPTranslator : BMPTranslator.cpp BMPView.cpp : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/exr/Jamfile b/src/add-ons/translators/exr/Jamfile index c73bba0bb2..faa6aff377 100644 --- a/src/add-ons/translators/exr/Jamfile +++ b/src/add-ons/translators/exr/Jamfile @@ -16,7 +16,7 @@ Translator EXRTranslator : EXRTranslator.cpp IStreamWrapper.cpp : be translation libilmimf.so $(TARGET_LIBSTDC++) libtranslatorsutils.a - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/exr/openexr/half/Jamfile b/src/add-ons/translators/exr/openexr/half/Jamfile index 4c29c93e72..b94ac4190d 100644 --- a/src/add-ons/translators/exr/openexr/half/Jamfile +++ b/src/add-ons/translators/exr/openexr/half/Jamfile @@ -2,12 +2,12 @@ SubDir HAIKU_TOP src add-ons translators exr openexr half ; SubDirSysHdrs [ FDirName $(SUBDIR) ] ; -if $(HAIKU_LIBSTDC++) = libstdc++.r4.so { +if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; } StaticLibrary libhalf.a : -eLut.cpp -half.cpp -toFloat.cpp -; + eLut.cpp + half.cpp + toFloat.cpp + ; diff --git a/src/add-ons/translators/exr/openexr/ilmimf/Jamfile b/src/add-ons/translators/exr/openexr/ilmimf/Jamfile index 1d565b07cb..b069a3d4dd 100644 --- a/src/add-ons/translators/exr/openexr/ilmimf/Jamfile +++ b/src/add-ons/translators/exr/openexr/ilmimf/Jamfile @@ -7,7 +7,7 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ilmthread ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) imath ] ; SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) config ] ; -if $(HAIKU_LIBSTDC++) = libstdc++.r4.so { +if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; } @@ -18,65 +18,65 @@ Includes [ FGristFiles ImfPxr24Compressor.cpp ImfZipCompressor.cpp ] #StaticLibrary libilmimf.a : SharedLibrary libilmimf.so : -b44ExpLogTable.cpp -ImfAttribute.cpp -ImfB44Compressor.cpp -ImfBoxAttribute.cpp -ImfChannelListAttribute.cpp -ImfChannelList.cpp -ImfChromaticitiesAttribute.cpp -ImfChromaticities.cpp -ImfCompressionAttribute.cpp -ImfCompressor.cpp -ImfConvert.cpp -ImfCRgbaFile.cpp -ImfDoubleAttribute.cpp -ImfEnvmapAttribute.cpp -ImfEnvmap.cpp -ImfFloatAttribute.cpp -ImfFrameBuffer.cpp -ImfFramesPerSecond.cpp -ImfHeader.cpp -ImfHuf.cpp -ImfInputFile.cpp -ImfIntAttribute.cpp -ImfIO.cpp -ImfKeyCodeAttribute.cpp -ImfKeyCode.cpp -ImfLineOrderAttribute.cpp -ImfLut.cpp -ImfMatrixAttribute.cpp -ImfMisc.cpp -ImfOpaqueAttribute.cpp -ImfOutputFile.cpp -ImfPizCompressor.cpp -ImfPreviewImageAttribute.cpp -ImfPreviewImage.cpp -ImfPxr24Compressor.cpp -ImfRationalAttribute.cpp -ImfRational.cpp -ImfRgbaFile.cpp -ImfRgbaYca.cpp -ImfRleCompressor.cpp -ImfScanLineInputFile.cpp -ImfStandardAttributes.cpp -ImfStdIO.cpp -ImfStringAttribute.cpp -ImfTestFile.cpp -ImfThreading.cpp -ImfTileDescriptionAttribute.cpp -ImfTiledInputFile.cpp -ImfTiledMisc.cpp -ImfTiledOutputFile.cpp -ImfTiledRgbaFile.cpp -ImfTileOffsets.cpp -ImfTimeCodeAttribute.cpp -ImfTimeCode.cpp -ImfVecAttribute.cpp -ImfVersion.cpp -ImfWav.cpp -ImfZipCompressor.cpp -: libhalf.a libiex.a libimath.a libilmthread.a $(TARGET_LIBSTDC++) - [ BuildFeatureAttribute zlib : library ] -; + b44ExpLogTable.cpp + ImfAttribute.cpp + ImfB44Compressor.cpp + ImfBoxAttribute.cpp + ImfChannelListAttribute.cpp + ImfChannelList.cpp + ImfChromaticitiesAttribute.cpp + ImfChromaticities.cpp + ImfCompressionAttribute.cpp + ImfCompressor.cpp + ImfConvert.cpp + ImfCRgbaFile.cpp + ImfDoubleAttribute.cpp + ImfEnvmapAttribute.cpp + ImfEnvmap.cpp + ImfFloatAttribute.cpp + ImfFrameBuffer.cpp + ImfFramesPerSecond.cpp + ImfHeader.cpp + ImfHuf.cpp + ImfInputFile.cpp + ImfIntAttribute.cpp + ImfIO.cpp + ImfKeyCodeAttribute.cpp + ImfKeyCode.cpp + ImfLineOrderAttribute.cpp + ImfLut.cpp + ImfMatrixAttribute.cpp + ImfMisc.cpp + ImfOpaqueAttribute.cpp + ImfOutputFile.cpp + ImfPizCompressor.cpp + ImfPreviewImageAttribute.cpp + ImfPreviewImage.cpp + ImfPxr24Compressor.cpp + ImfRationalAttribute.cpp + ImfRational.cpp + ImfRgbaFile.cpp + ImfRgbaYca.cpp + ImfRleCompressor.cpp + ImfScanLineInputFile.cpp + ImfStandardAttributes.cpp + ImfStdIO.cpp + ImfStringAttribute.cpp + ImfTestFile.cpp + ImfThreading.cpp + ImfTileDescriptionAttribute.cpp + ImfTiledInputFile.cpp + ImfTiledMisc.cpp + ImfTiledOutputFile.cpp + ImfTiledRgbaFile.cpp + ImfTileOffsets.cpp + ImfTimeCodeAttribute.cpp + ImfTimeCode.cpp + ImfVecAttribute.cpp + ImfVersion.cpp + ImfWav.cpp + ImfZipCompressor.cpp + : libhalf.a libiex.a libimath.a libilmthread.a $(TARGET_LIBSTDC++) + [ BuildFeatureAttribute zlib : library ] + ; diff --git a/src/add-ons/translators/exr/openexr/imath/Jamfile b/src/add-ons/translators/exr/openexr/imath/Jamfile index 8a6215ef91..cebb9cabe4 100644 --- a/src/add-ons/translators/exr/openexr/imath/Jamfile +++ b/src/add-ons/translators/exr/openexr/imath/Jamfile @@ -4,16 +4,16 @@ SubDirSysHdrs [ FDirName $(SUBDIR) ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) half ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) iex ] ; -if $(HAIKU_LIBSTDC++) = libstdc++.r4.so { - SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; +if $(TARGET_PACKAGING_ARCH) = x86_gcc2 { + SubDirC++Flags -Dios_base=ios -ftemplate-depth-24 ; } StaticLibrary libimath.a : -ImathBox.cpp -ImathColorAlgo.cpp -ImathFun.cpp -ImathMatrixAlgo.cpp -ImathRandom.cpp -ImathShear.cpp -ImathVec.cpp -; + ImathBox.cpp + ImathColorAlgo.cpp + ImathFun.cpp + ImathMatrixAlgo.cpp + ImathRandom.cpp + ImathShear.cpp + ImathVec.cpp + ; diff --git a/src/add-ons/translators/gif/Jamfile b/src/add-ons/translators/gif/Jamfile index c3a04258a7..794c5f156e 100644 --- a/src/add-ons/translators/gif/Jamfile +++ b/src/add-ons/translators/gif/Jamfile @@ -18,7 +18,7 @@ Translator GIFTranslator : SavePalette.cpp SFHash.cpp : - be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + be translation $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/hpgs/Jamfile b/src/add-ons/translators/hpgs/Jamfile index c7cdc578b4..4b57322519 100644 --- a/src/add-ons/translators/hpgs/Jamfile +++ b/src/add-ons/translators/hpgs/Jamfile @@ -54,7 +54,7 @@ Translator HPGSTranslator : : be translation libtextencoding.so [ BuildFeatureAttribute libpng : library ] [ BuildFeatureAttribute zlib : library ] - libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + libtranslatorsutils.a $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/hvif/Jamfile b/src/add-ons/translators/hvif/Jamfile index 0cc2230a24..96814ca4ed 100644 --- a/src/add-ons/translators/hvif/Jamfile +++ b/src/add-ons/translators/hvif/Jamfile @@ -9,7 +9,7 @@ Translator HVIFTranslator : HVIFTranslator.cpp HVIFView.cpp : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/icns/Jamfile b/src/add-ons/translators/icns/Jamfile index a527d6dafd..f90c7075e5 100644 --- a/src/add-ons/translators/icns/Jamfile +++ b/src/add-ons/translators/icns/Jamfile @@ -77,7 +77,7 @@ Translator ICNSTranslator : : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) [ BuildFeatureAttribute libpng : library ] - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/ico/Jamfile b/src/add-ons/translators/ico/Jamfile index 34bdbbc869..5a984e2ec4 100644 --- a/src/add-ons/translators/ico/Jamfile +++ b/src/add-ons/translators/ico/Jamfile @@ -13,7 +13,7 @@ Translator ICOTranslator : ConfigView.cpp ICO.cpp : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/jpeg/Jamfile b/src/add-ons/translators/jpeg/Jamfile index b1c70bd4ba..6bf18706c5 100644 --- a/src/add-ons/translators/jpeg/Jamfile +++ b/src/add-ons/translators/jpeg/Jamfile @@ -24,7 +24,7 @@ Translator JPEGTranslator : JPEGTranslator.cpp : be translation libtranslatorsutils.a [ BuildFeatureAttribute jpeg : library ] - $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSTDC++) localestub : true ; diff --git a/src/add-ons/translators/jpeg2000/Jamfile b/src/add-ons/translators/jpeg2000/Jamfile index 38de3184c8..78f9eb67bf 100644 --- a/src/add-ons/translators/jpeg2000/Jamfile +++ b/src/add-ons/translators/jpeg2000/Jamfile @@ -72,7 +72,7 @@ Translator JPEG2000Translator : $(jasper_files) : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/pcx/Jamfile b/src/add-ons/translators/pcx/Jamfile index 4dbf0b2167..c5dc7431e9 100644 --- a/src/add-ons/translators/pcx/Jamfile +++ b/src/add-ons/translators/pcx/Jamfile @@ -12,7 +12,7 @@ Translator PCXTranslator : PCXTranslator.cpp ConfigView.cpp PCX.cpp - : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/png/Jamfile b/src/add-ons/translators/png/Jamfile index ff73b92dfd..37b6248db0 100644 --- a/src/add-ons/translators/png/Jamfile +++ b/src/add-ons/translators/png/Jamfile @@ -8,7 +8,7 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; AddResources PNGTranslator : PNGTranslator.rdef ; -if $(HAIKU_GCC_VERSION[1]) = 2 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) = 2 { SubDirCcFlags -DPNG_NO_PEDANTIC_WARNINGS ; } @@ -24,7 +24,7 @@ Translator PNGTranslator : [ BuildFeatureAttribute libpng : library ] [ BuildFeatureAttribute zlib : library ] $(TARGET_LIBSUPC++) libtranslatorsutils.a - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/ppm/Jamfile b/src/add-ons/translators/ppm/Jamfile index 84bd33e7bd..f29c39eda8 100644 --- a/src/add-ons/translators/ppm/Jamfile +++ b/src/add-ons/translators/ppm/Jamfile @@ -6,7 +6,7 @@ AddResources PPMTranslator : PPMTranslator.rdef ; Translator PPMTranslator : PPMMain.cpp PPMTranslator.cpp colorspace.cpp - : be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/raw/Jamfile b/src/add-ons/translators/raw/Jamfile index 2b122b471d..e9a682a98c 100644 --- a/src/add-ons/translators/raw/Jamfile +++ b/src/add-ons/translators/raw/Jamfile @@ -14,7 +14,7 @@ Translator RAWTranslator : RAW.cpp : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/rtf/Jamfile b/src/add-ons/translators/rtf/Jamfile index 79c45c5076..5da96912c9 100644 --- a/src/add-ons/translators/rtf/Jamfile +++ b/src/add-ons/translators/rtf/Jamfile @@ -18,9 +18,7 @@ Translator RTFTranslator : RTF.cpp RTFTranslator.cpp - : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) -$(HAIKU_LOCALE_LIBS) - $(HAIKU_LOCALE_LIBS) + : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/sgi/Jamfile b/src/add-ons/translators/sgi/Jamfile index a730b434c1..d324e6f444 100644 --- a/src/add-ons/translators/sgi/Jamfile +++ b/src/add-ons/translators/sgi/Jamfile @@ -11,7 +11,7 @@ Translator SGITranslator : SGIMain.cpp SGITranslator.cpp SGIView.cpp - : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/shared/Jamfile b/src/add-ons/translators/shared/Jamfile index 7a5e1e3b83..4384ac660e 100644 --- a/src/add-ons/translators/shared/Jamfile +++ b/src/add-ons/translators/shared/Jamfile @@ -7,7 +7,6 @@ StaticLibrary libtranslatorsutils.a : StreamBuffer.cpp TranslatorSettings.cpp TranslatorWindow.cpp - : $(HAIKU_LOCALE_LIBS) ; DoCatalogs libtranslatorsutils.a : diff --git a/src/add-ons/translators/stxt/Jamfile b/src/add-ons/translators/stxt/Jamfile index 6009b6a901..5a63181c31 100644 --- a/src/add-ons/translators/stxt/Jamfile +++ b/src/add-ons/translators/stxt/Jamfile @@ -15,7 +15,7 @@ Translator STXTTranslator : STXTTranslator.cpp STXTView.cpp : be translation libtextencoding.so libtranslatorsutils.a - $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/tga/Jamfile b/src/add-ons/translators/tga/Jamfile index 16018ab313..24ad561598 100644 --- a/src/add-ons/translators/tga/Jamfile +++ b/src/add-ons/translators/tga/Jamfile @@ -10,7 +10,7 @@ Translator TGATranslator : TGAMain.cpp TGATranslator.cpp TGAView.cpp - : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation libtranslatorsutils.a $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/tiff/Jamfile b/src/add-ons/translators/tiff/Jamfile index e2ca412e55..6196768a01 100644 --- a/src/add-ons/translators/tiff/Jamfile +++ b/src/add-ons/translators/tiff/Jamfile @@ -17,7 +17,7 @@ Translator TIFFTranslator : TIFFView.cpp : be libtiff.so translation libtranslatorsutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : true ; diff --git a/src/add-ons/translators/webp/Jamfile b/src/add-ons/translators/webp/Jamfile index 60aa74ff40..a6d95fddb0 100644 --- a/src/add-ons/translators/webp/Jamfile +++ b/src/add-ons/translators/webp/Jamfile @@ -18,7 +18,7 @@ Translator WebPTranslator : webpdecode.o webpencode.o be translation libtranslatorsutils.a - $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/add-ons/translators/wonderbrush/Jamfile b/src/add-ons/translators/wonderbrush/Jamfile index ba5a0da392..58c8077991 100644 --- a/src/add-ons/translators/wonderbrush/Jamfile +++ b/src/add-ons/translators/wonderbrush/Jamfile @@ -29,7 +29,7 @@ Translator WonderBrushTranslator : : be translation [ BuildFeatureAttribute zlib : library ] libtranslatorsutils.a - $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSUPC++) localestub : true ; diff --git a/src/apps/3dmov/Jamfile b/src/apps/3dmov/Jamfile index 8e0d8c37fa..5c5afe3fd4 100644 --- a/src/apps/3dmov/Jamfile +++ b/src/apps/3dmov/Jamfile @@ -4,7 +4,7 @@ UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { SubDirC++Flags --no-warnings ; } @@ -23,7 +23,7 @@ Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; Application 3DMov : $(sources) - : be GL game $(HAIKU_LOCALE_LIBS) media translation $(TARGET_LIBSUPC++) + : be GL game localestub media translation $(TARGET_LIBSUPC++) : 3dmov.rdef ; diff --git a/src/apps/aboutsystem/Jamfile b/src/apps/aboutsystem/Jamfile index a32c40bca3..757657cb35 100644 --- a/src/apps/aboutsystem/Jamfile +++ b/src/apps/aboutsystem/Jamfile @@ -7,7 +7,7 @@ Application AboutSystem : HyperTextActions.cpp HyperTextView.cpp Utilities.cpp - : $(TARGET_LIBSTDC++) be translation $(HAIKU_LOCALE_LIBS) + : $(TARGET_LIBSTDC++) be translation localestub : AboutSystem.rdef ; diff --git a/src/apps/activitymonitor/Jamfile b/src/apps/activitymonitor/Jamfile index 60c7dbfabd..b6cd7a811d 100644 --- a/src/apps/activitymonitor/Jamfile +++ b/src/apps/activitymonitor/Jamfile @@ -11,7 +11,7 @@ Application ActivityMonitor : SystemInfo.cpp SystemInfoHandler.cpp : be tracker media libbnetapi.so libshared.a $(TARGET_LIBSTDC++) - $(TARGET_NETWORK_LIBS) $(HAIKU_LOCALE_LIBS) + $(TARGET_NETWORK_LIBS) localestub : ActivityMonitor.rdef ; diff --git a/src/apps/bootmanager/Jamfile b/src/apps/bootmanager/Jamfile index a141789323..021dfe72da 100644 --- a/src/apps/bootmanager/Jamfile +++ b/src/apps/bootmanager/Jamfile @@ -22,7 +22,7 @@ Application BootManager : WizardController.cpp WizardPageView.cpp - : be textencoding tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be textencoding tracker localestub $(TARGET_LIBSUPC++) : BootManager.rdef ; diff --git a/src/apps/bsnow/Jamfile b/src/apps/bsnow/Jamfile index 8b0325f1d9..4f941c5735 100644 --- a/src/apps/bsnow/Jamfile +++ b/src/apps/bsnow/Jamfile @@ -6,7 +6,7 @@ Application BSnow : Flakes.cpp SnowView.cpp SnowApp.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : BSnow.rdef ; diff --git a/src/apps/cdplayer/Jamfile b/src/apps/cdplayer/Jamfile index a878bb7d83..aec488d4c2 100644 --- a/src/apps/cdplayer/Jamfile +++ b/src/apps/cdplayer/Jamfile @@ -13,7 +13,7 @@ Application CDPlayer : VolumeSlider.cpp : be $(TARGET_SELECT_UNAME_ETC_LIB) $(TARGET_NETAPI_LIB) $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) translation textencoding + localestub translation textencoding : CDPlayer.rdef ; diff --git a/src/apps/charactermap/Jamfile b/src/apps/charactermap/Jamfile index 194b0e2754..a05f9e0b15 100644 --- a/src/apps/charactermap/Jamfile +++ b/src/apps/charactermap/Jamfile @@ -11,7 +11,7 @@ Application CharacterMap : UnicodeBlocks.cpp UnicodeBlockView.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : CharacterMap.rdef ; diff --git a/src/apps/clock/Jamfile b/src/apps/clock/Jamfile index c01a0c3bec..ee1b5c1dd7 100644 --- a/src/apps/clock/Jamfile +++ b/src/apps/clock/Jamfile @@ -6,7 +6,7 @@ Application Clock : cl_view.cpp cl_wind.cpp clock.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be localestub $(TARGET_LIBSUPC++) : Clock.rdef ; diff --git a/src/apps/codycam/Jamfile b/src/apps/codycam/Jamfile index ced6af6fd3..e6a8aace55 100644 --- a/src/apps/codycam/Jamfile +++ b/src/apps/codycam/Jamfile @@ -13,7 +13,7 @@ Application CodyCam : Settings.cpp SettingsHandler.cpp VideoConsumer.cpp - : be $(HAIKU_LOCALE_LIBS) media translation $(TARGET_NETAPI_LIB) + : be localestub media translation $(TARGET_NETAPI_LIB) $(TARGET_LIBSTDC++) : CodyCam.rdef ; diff --git a/src/apps/debugger/Jamfile b/src/apps/debugger/Jamfile index aaf52c569b..cc0cef3768 100644 --- a/src/apps/debugger/Jamfile +++ b/src/apps/debugger/Jamfile @@ -6,7 +6,8 @@ C++FLAGS += -Werror ; UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; # for syscall_numbers.h -UseHeaders [ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR) system kernel ] ; +UseHeaders [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + system kernel ] ; UsePrivateHeaders app debug interface kernel shared libroot ; UsePrivateSystemHeaders ; @@ -65,7 +66,7 @@ SourceHdrs # since syscall_numbers.h is generated on the fly, we need to explicitly # let Jam know about the dependency. Includes [ FGristFiles TeamDebugger.cpp ] - : syscall_numbers.h ; + : syscall_numbers.h ; Application Debugger : Debugger.cpp diff --git a/src/apps/deskbar/Jamfile b/src/apps/deskbar/Jamfile index 5f9c38a58a..33315ea2a1 100644 --- a/src/apps/deskbar/Jamfile +++ b/src/apps/deskbar/Jamfile @@ -40,7 +40,7 @@ Application Deskbar : ResourceSet.cpp Switcher.cpp $(targetSource) - : be $(HAIKU_LOCALE_LIBS) tracker $(targetLib) $(TARGET_LIBSUPC++) + : be localestub tracker $(targetLib) $(TARGET_LIBSUPC++) ; DoCatalogs Deskbar : diff --git a/src/apps/deskcalc/Jamfile b/src/apps/deskcalc/Jamfile index 007f899b0e..b002ccd714 100644 --- a/src/apps/deskcalc/Jamfile +++ b/src/apps/deskcalc/Jamfile @@ -12,7 +12,7 @@ Application DeskCalc : DeskCalc.cpp ExpressionTextView.cpp InputTextView.cpp - : be $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) media libexpression_parser.a + : be $(TARGET_LIBSTDC++) localestub media libexpression_parser.a libmapm.a libshared.a : DeskCalc.rdef ; diff --git a/src/apps/devices/Jamfile b/src/apps/devices/Jamfile index 4af0861b8b..66086087ae 100644 --- a/src/apps/devices/Jamfile +++ b/src/apps/devices/Jamfile @@ -97,7 +97,7 @@ Application Devices : PropertyList.cpp PropertyListPlain.cpp : be libcolumnlistview.a tracker $(TARGET_LIBSUPC++) - $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSTDC++) localestub : Devices.rdef ; diff --git a/src/apps/diskprobe/Jamfile b/src/apps/diskprobe/Jamfile index 466886e450..1d077bf520 100644 --- a/src/apps/diskprobe/Jamfile +++ b/src/apps/diskprobe/Jamfile @@ -15,7 +15,7 @@ Application DiskProbe : ProbeView.cpp OpenWindow.cpp FindWindow.cpp - : be $(HAIKU_LOCALE_LIBS) tracker translation libexpression_parser.a + : be localestub tracker translation libexpression_parser.a libmapm.a $(TARGET_LIBSUPC++) : DiskProbe.rdef ; diff --git a/src/apps/diskusage/Jamfile b/src/apps/diskusage/Jamfile index 37d3effac1..7bc0f9b49d 100644 --- a/src/apps/diskusage/Jamfile +++ b/src/apps/diskusage/Jamfile @@ -14,7 +14,7 @@ Application DiskUsage : Snapshot.cpp StatusView.cpp VolumeView.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be localestub $(TARGET_LIBSTDC++) : DiskUsage.rdef ; diff --git a/src/apps/drivesetup/Jamfile b/src/apps/drivesetup/Jamfile index 7f82eb13eb..cb003fa9e3 100644 --- a/src/apps/drivesetup/Jamfile +++ b/src/apps/drivesetup/Jamfile @@ -15,7 +15,7 @@ Preference DriveSetup : PartitionList.cpp Support.cpp - : be $(HAIKU_LOCALE_LIBS) libcolumnlistview.a libshared.a + : be localestub libcolumnlistview.a libshared.a $(TARGET_LIBSUPC++) : DriveSetup.rdef ; diff --git a/src/apps/expander/Jamfile b/src/apps/expander/Jamfile index d1d13ab13d..7f532907c5 100644 --- a/src/apps/expander/Jamfile +++ b/src/apps/expander/Jamfile @@ -12,7 +12,7 @@ Application Expander : DirectoryFilePanel.cpp ExpanderRules.cpp PasswordAlert.cpp - : be tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be tracker localestub $(TARGET_LIBSUPC++) : Expander.rdef ; diff --git a/src/apps/firstbootprompt/Jamfile b/src/apps/firstbootprompt/Jamfile index c0a67929ad..352ab263dc 100644 --- a/src/apps/firstbootprompt/Jamfile +++ b/src/apps/firstbootprompt/Jamfile @@ -9,7 +9,7 @@ Application FirstBootPrompt : BootPromptWindow.cpp Keymap.cpp KeymapListItem.cpp - : be translation libshared.a $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be translation libshared.a $(TARGET_LIBSTDC++) localestub : BootPrompt.rdef ; diff --git a/src/apps/fontdemo/Jamfile b/src/apps/fontdemo/Jamfile index 81bfb02757..7d23d10aab 100644 --- a/src/apps/fontdemo/Jamfile +++ b/src/apps/fontdemo/Jamfile @@ -6,7 +6,7 @@ Application FontDemo : ControlView.cpp FontDemo.cpp FontDemoView.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be localestub $(TARGET_LIBSUPC++) : FontDemo.rdef ; diff --git a/src/apps/glteapot/Jamfile b/src/apps/glteapot/Jamfile index ed78f81aa2..cc1125aebc 100644 --- a/src/apps/glteapot/Jamfile +++ b/src/apps/glteapot/Jamfile @@ -21,7 +21,7 @@ Includes [ FGristFiles $(sources) ] : Application GLTeapot : $(sources) : - be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be GL game localestub $(TARGET_LIBSUPC++) [ BuildFeatureAttribute glu : library ] : GLTeapot.rdef ; diff --git a/src/apps/haiku3d/Jamfile b/src/apps/haiku3d/Jamfile index 59c3aa2b13..af495a2b3e 100644 --- a/src/apps/haiku3d/Jamfile +++ b/src/apps/haiku3d/Jamfile @@ -6,7 +6,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) mesh ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) texture ] ; # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { SubDirC++Flags --no-warnings ; } diff --git a/src/apps/icon-o-matic/Jamfile b/src/apps/icon-o-matic/Jamfile index 79883f1207..b4e2ce2543 100644 --- a/src/apps/icon-o-matic/Jamfile +++ b/src/apps/icon-o-matic/Jamfile @@ -300,7 +300,7 @@ Application Icon-O-Matic : Util.cpp : be tracker translation libshared.a libagg.a libexpat.a - $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSTDC++) localestub : Icon-O-Matic.rdef ; diff --git a/src/apps/installedpackages/Jamfile b/src/apps/installedpackages/Jamfile index ba753e9e03..7553857c6d 100644 --- a/src/apps/installedpackages/Jamfile +++ b/src/apps/installedpackages/Jamfile @@ -11,7 +11,7 @@ Application InstalledPackages : main.cpp UninstallWindow.cpp UninstallView.cpp - : be tracker translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker translation $(TARGET_LIBSUPC++) localestub ; DoCatalogs InstalledPackages : diff --git a/src/apps/installer/Jamfile b/src/apps/installer/Jamfile index 884a93e434..b5843f2dd1 100644 --- a/src/apps/installer/Jamfile +++ b/src/apps/installer/Jamfile @@ -14,7 +14,7 @@ Application Installer : UnzipEngine.cpp WorkerThread.cpp : be tracker translation libshared.a $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) + localestub : Installer.rdef ; diff --git a/src/apps/launchbox/Jamfile b/src/apps/launchbox/Jamfile index d560636534..7a6da13ed0 100644 --- a/src/apps/launchbox/Jamfile +++ b/src/apps/launchbox/Jamfile @@ -11,7 +11,7 @@ Application LaunchBox : PadView.cpp Panel.cpp support.cpp - : be translation libshared.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be translation libshared.a $(TARGET_LIBSUPC++) localestub : LaunchBox.rdef ; diff --git a/src/apps/login/Jamfile b/src/apps/login/Jamfile index 9c15dea930..e995bd3227 100644 --- a/src/apps/login/Jamfile +++ b/src/apps/login/Jamfile @@ -19,7 +19,7 @@ Application Login : LoginWindow.cpp LoginView.cpp main.cpp - : be tracker $(mu_libs) $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be tracker $(mu_libs) $(TARGET_LIBSTDC++) localestub : Login.rdef ; diff --git a/src/apps/magnify/Jamfile b/src/apps/magnify/Jamfile index 9bd4dbf87f..8cfbf7889c 100644 --- a/src/apps/magnify/Jamfile +++ b/src/apps/magnify/Jamfile @@ -8,7 +8,7 @@ UsePrivateHeaders shared ; Application Magnify : Magnify.cpp - : be game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) tracker + : be game localestub $(TARGET_LIBSUPC++) tracker : Magnify.rdef ; diff --git a/src/apps/mail/Jamfile b/src/apps/mail/Jamfile index 87c736a440..123cb95c96 100644 --- a/src/apps/mail/Jamfile +++ b/src/apps/mail/Jamfile @@ -33,7 +33,7 @@ Application Mail : WIndex.cpp Words.cpp KUndoBuffer.cpp - : be tracker $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) localestub libmail.so libtextencoding.so : Mail.rdef ; diff --git a/src/apps/mandelbrot/Jamfile b/src/apps/mandelbrot/Jamfile index edd55298ff..0e99a63f11 100644 --- a/src/apps/mandelbrot/Jamfile +++ b/src/apps/mandelbrot/Jamfile @@ -6,7 +6,7 @@ AddSubDirSupportedPlatforms libbe_test ; Application Mandelbrot : Mandelbrot.cpp tsb.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : Mandelbrot.rdef ; diff --git a/src/apps/mediaconverter/Jamfile b/src/apps/mediaconverter/Jamfile index 81098f02a5..60ac2bffb1 100644 --- a/src/apps/mediaconverter/Jamfile +++ b/src/apps/mediaconverter/Jamfile @@ -12,7 +12,7 @@ Application MediaConverter : MediaFileInfoView.cpp MediaFileListView.cpp - : be media tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be media tracker localestub $(TARGET_LIBSTDC++) : MediaConverter.rdef ; diff --git a/src/apps/mediaplayer/Jamfile b/src/apps/mediaplayer/Jamfile index 23a3bd0ea2..5f35946f46 100644 --- a/src/apps/mediaplayer/Jamfile +++ b/src/apps/mediaplayer/Jamfile @@ -115,7 +115,7 @@ Application MediaPlayer : VideoView.cpp : be game media tracker translation textencoding $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) libshared.a + localestub libshared.a : MediaPlayer.rdef ; diff --git a/src/apps/midiplayer/Jamfile b/src/apps/midiplayer/Jamfile index b2950da2bb..3d75d96d6d 100644 --- a/src/apps/midiplayer/Jamfile +++ b/src/apps/midiplayer/Jamfile @@ -7,7 +7,7 @@ Application MidiPlayer : MidiPlayerWindow.cpp ScopeView.cpp SynthBridge.cpp - : be midi midi2 $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be midi midi2 $(TARGET_LIBSUPC++) localestub : MidiPlayer.rdef ; diff --git a/src/apps/musiccollection/Jamfile b/src/apps/musiccollection/Jamfile index af2cbd3ba9..f38edffd64 100644 --- a/src/apps/musiccollection/Jamfile +++ b/src/apps/musiccollection/Jamfile @@ -12,7 +12,7 @@ Application MusicCollection : NodeMonitorHandler.cpp : - be libalm.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + be libalm.so localestub $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++) libshared.a : MusicCollection.rdef diff --git a/src/apps/networkstatus/Jamfile b/src/apps/networkstatus/Jamfile index c05d505124..ce3b22bb94 100644 --- a/src/apps/networkstatus/Jamfile +++ b/src/apps/networkstatus/Jamfile @@ -17,7 +17,7 @@ Application NetworkStatus : RadioView.cpp WirelessNetworkMenuItem.cpp - : be libshared.a $(HAIKU_LOCALE_LIBS) $(icon_libs) $(TARGET_NETWORK_LIBS) + : be libshared.a localestub $(icon_libs) $(TARGET_NETWORK_LIBS) libbnetapi.so $(TARGET_LIBSTDC++) : NetworkStatus.rdef NetworkStatusIcons.rdef ; diff --git a/src/apps/overlayimage/Jamfile b/src/apps/overlayimage/Jamfile index def9cb8703..634c9cd18c 100644 --- a/src/apps/overlayimage/Jamfile +++ b/src/apps/overlayimage/Jamfile @@ -5,7 +5,7 @@ Application OverlayImage : OverlayView.cpp OverlayWindow.cpp - : be libtranslation.so $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be libtranslation.so $(TARGET_LIBSTDC++) localestub : OverlayImage.rdef ; diff --git a/src/apps/packageinstaller/Jamfile b/src/apps/packageinstaller/Jamfile index e11235a1f2..26ddba7624 100644 --- a/src/apps/packageinstaller/Jamfile +++ b/src/apps/packageinstaller/Jamfile @@ -19,7 +19,7 @@ Application PackageInstaller : PackageTextViewer.cpp PackageImageViewer.cpp InstalledPackageInfo.cpp - : be $(HAIKU_LOCALE_LIBS) tracker translation + : be localestub tracker translation [ BuildFeatureAttribute zlib : library ] $(TARGET_LIBSUPC++) : PackageInstaller.rdef diff --git a/src/apps/packagemanager/Jamfile b/src/apps/packagemanager/Jamfile index 2a59ff8c7b..3126298213 100644 --- a/src/apps/packagemanager/Jamfile +++ b/src/apps/packagemanager/Jamfile @@ -6,7 +6,7 @@ Application PackageManager : ApplicationView.cpp ApplicationWindow.cpp PackageManager.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) translation + : be localestub $(TARGET_LIBSUPC++) translation : PackageManager.rdef ; diff --git a/src/apps/pairs/Jamfile b/src/apps/pairs/Jamfile index a8585d066f..21541a51c4 100644 --- a/src/apps/pairs/Jamfile +++ b/src/apps/pairs/Jamfile @@ -6,7 +6,7 @@ Application Pairs : PairsView.cpp PairsTopButton.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be localestub $(TARGET_LIBSTDC++) : Pairs.rdef ; diff --git a/src/apps/people/Jamfile b/src/apps/people/Jamfile index a5206f1444..1a0f1d3fdf 100644 --- a/src/apps/people/Jamfile +++ b/src/apps/people/Jamfile @@ -10,7 +10,7 @@ Application People : PersonWindow.cpp PictureView.cpp : be tracker translation - $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSUPC++) localestub : People.rdef ; diff --git a/src/apps/poorman/Jamfile b/src/apps/poorman/Jamfile index 29f7007c98..ca3a0c4aac 100644 --- a/src/apps/poorman/Jamfile +++ b/src/apps/poorman/Jamfile @@ -51,7 +51,7 @@ Application PoorMan : PoorMan.cpp match.c tdate_parse.c - : be network tracker $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be network tracker $(TARGET_LIBSTDC++) localestub ; diff --git a/src/apps/powerstatus/Jamfile b/src/apps/powerstatus/Jamfile index 59d8d7a82d..3c757a8e13 100644 --- a/src/apps/powerstatus/Jamfile +++ b/src/apps/powerstatus/Jamfile @@ -13,7 +13,7 @@ Application PowerStatus : PowerStatusWindow.cpp PowerStatusView.cpp PowerStatus.cpp - : be libshared.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be libshared.a $(TARGET_LIBSUPC++) localestub : PowerStatus.rdef ; DoCatalogs PowerStatus : diff --git a/src/apps/processcontroller/Jamfile b/src/apps/processcontroller/Jamfile index a5494703b6..ca8f24c59e 100644 --- a/src/apps/processcontroller/Jamfile +++ b/src/apps/processcontroller/Jamfile @@ -21,7 +21,7 @@ Application ProcessController : ThreadBarMenu.cpp ThreadBarMenuItem.cpp Utilities.cpp - : be libshared.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be libshared.a $(TARGET_LIBSUPC++) localestub : ProcessController.rdef ; diff --git a/src/apps/pulse/Jamfile b/src/apps/pulse/Jamfile index feac93a547..ae4c712aa7 100644 --- a/src/apps/pulse/Jamfile +++ b/src/apps/pulse/Jamfile @@ -23,7 +23,7 @@ Application Pulse : PulseView.cpp PulseWindow.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be localestub $(TARGET_LIBSUPC++) : Pulse.rdef ; diff --git a/src/apps/screenshot/Jamfile b/src/apps/screenshot/Jamfile index 182e475ec2..34bf43f26e 100644 --- a/src/apps/screenshot/Jamfile +++ b/src/apps/screenshot/Jamfile @@ -8,7 +8,7 @@ Application Screenshot : ScreenshotApp.cpp ScreenshotWindow.cpp Utility.cpp - : be $(HAIKU_LOCALE_LIBS) tracker translation $(TARGET_LIBSUPC++) + : be localestub tracker translation $(TARGET_LIBSUPC++) : ScreenshotApp.rdef ; @@ -22,7 +22,7 @@ DoCatalogs Screenshot : Application screenshot : Screenshot.cpp Utility.cpp - : be $(HAIKU_LOCALE_LIBS) translation $(TARGET_LIBSUPC++) + : be localestub translation $(TARGET_LIBSUPC++) : Screenshot.rdef ; diff --git a/src/apps/serialconnect/Jamfile b/src/apps/serialconnect/Jamfile index 1d04a0c251..f1ad7342d0 100644 --- a/src/apps/serialconnect/Jamfile +++ b/src/apps/serialconnect/Jamfile @@ -16,6 +16,6 @@ Application SerialConnect : state.c unicode.c vterm.c - : be device tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be device tracker localestub $(TARGET_LIBSUPC++) ; diff --git a/src/apps/showimage/Jamfile b/src/apps/showimage/Jamfile index 3ff8552b08..a0195e75f9 100644 --- a/src/apps/showimage/Jamfile +++ b/src/apps/showimage/Jamfile @@ -21,7 +21,7 @@ Application ShowImage : ShowImageWindow.cpp ToolBarIcons.cpp ToolBarView.cpp - : libshared.a be tracker translation $(HAIKU_LOCALE_LIBS) + : libshared.a be tracker translation localestub $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) : ShowImage.rdef ; diff --git a/src/apps/soundrecorder/Jamfile b/src/apps/soundrecorder/Jamfile index 49966af798..a223991981 100644 --- a/src/apps/soundrecorder/Jamfile +++ b/src/apps/soundrecorder/Jamfile @@ -17,7 +17,7 @@ Application SoundRecorder : UpDownButton.cpp VUView.cpp VolumeSlider.cpp - : be $(HAIKU_LOCALE_LIBS) media tracker $(TARGET_LIBSTDC++) + : be localestub media tracker $(TARGET_LIBSTDC++) : SoundRecorder.rdef ; diff --git a/src/apps/stylededit/Jamfile b/src/apps/stylededit/Jamfile index 1cd8e88651..e0b59bae1f 100644 --- a/src/apps/stylededit/Jamfile +++ b/src/apps/stylededit/Jamfile @@ -17,7 +17,7 @@ Application StyledEdit : StyledEditApp.cpp StyledEditView.cpp StyledEditWindow.cpp - : be translation tracker libtextencoding.so $(HAIKU_LOCALE_LIBS) + : be translation tracker libtextencoding.so localestub $(TARGET_LIBSUPC++) : $(styled_edit_rsrc) ; diff --git a/src/apps/sudoku/Jamfile b/src/apps/sudoku/Jamfile index 64423233ed..51f31eefc5 100644 --- a/src/apps/sudoku/Jamfile +++ b/src/apps/sudoku/Jamfile @@ -12,7 +12,7 @@ Application Sudoku : SudokuView.cpp SudokuWindow.cpp - : be tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be tracker localestub $(TARGET_LIBSTDC++) : Sudoku.rdef ; diff --git a/src/apps/switcher/Jamfile b/src/apps/switcher/Jamfile index 504f6d83ce..1d561a2e15 100644 --- a/src/apps/switcher/Jamfile +++ b/src/apps/switcher/Jamfile @@ -12,6 +12,6 @@ Application Switcher : WindowsView.cpp : be translation $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) libshared.a + localestub libshared.a : Switcher.rdef ; diff --git a/src/apps/terminal/Jamfile b/src/apps/terminal/Jamfile index 98a062afa8..3d112fcaed 100644 --- a/src/apps/terminal/Jamfile +++ b/src/apps/terminal/Jamfile @@ -40,7 +40,7 @@ Application Terminal : TitlePlaceholderMapper.cpp VTKeyTbl.c VTPrsTbl.c - : be $(HAIKU_LOCALE_LIBS) tracker textencoding + : be localestub tracker textencoding $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++) : Terminal.rdef XColors.rdef ; diff --git a/src/apps/text_search/Jamfile b/src/apps/text_search/Jamfile index dddd9dea9c..5ef190a85e 100644 --- a/src/apps/text_search/Jamfile +++ b/src/apps/text_search/Jamfile @@ -24,7 +24,7 @@ Application TextSearch : $(additionalBeOSSources) - : be $(HAIKU_LOCALE_LIBS) tracker textencoding libshared.a + : be localestub tracker textencoding libshared.a $(TARGET_LIBSUPC++) : TextSearch.rdef ; diff --git a/src/apps/tracker/Jamfile b/src/apps/tracker/Jamfile index 8e65492266..259523a2cf 100644 --- a/src/apps/tracker/Jamfile +++ b/src/apps/tracker/Jamfile @@ -9,7 +9,7 @@ SubDirHdrs $(HAIKU_TOP) src kits tracker ; Application Tracker : main.cpp - : be tracker $(HAIKU_LOCALE_LIBS) + : be tracker localestub : Tracker.rdef ; diff --git a/src/apps/tv/Jamfile b/src/apps/tv/Jamfile index 95a15fa211..47b49e9529 100644 --- a/src/apps/tv/Jamfile +++ b/src/apps/tv/Jamfile @@ -8,7 +8,7 @@ Application TV : MainWin.cpp VideoNode.cpp VideoView.cpp - : be $(HAIKU_LOCALE_LIBS) media $(TARGET_LIBSUPC++) + : be localestub media $(TARGET_LIBSUPC++) : tv.rdef ; diff --git a/src/apps/webpositive/Jamfile b/src/apps/webpositive/Jamfile index 584d37794d..6fc7dd5718 100644 --- a/src/apps/webpositive/Jamfile +++ b/src/apps/webpositive/Jamfile @@ -60,7 +60,7 @@ Application WebPositive : $(sources) : $(HAIKU_WEBKIT_LIBS) - $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSTDC++) localestub be libshared.a network tracker translation : WebPositive.rdef diff --git a/src/apps/webwatch/Jamfile b/src/apps/webwatch/Jamfile index a88a1a2b9c..3764f04eca 100644 --- a/src/apps/webwatch/Jamfile +++ b/src/apps/webwatch/Jamfile @@ -5,7 +5,7 @@ SetSubDirSupportedPlatformsBeOSCompatible ; Application WebWatch : WatchApp.cpp WatchView.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be localestub $(TARGET_LIBSUPC++) : WebWatch.rdef ; diff --git a/src/apps/workspaces/Jamfile b/src/apps/workspaces/Jamfile index cdc936ac87..1922be596c 100644 --- a/src/apps/workspaces/Jamfile +++ b/src/apps/workspaces/Jamfile @@ -7,7 +7,7 @@ UsePrivateHeaders app interface shared ; Application Workspaces : Workspaces.cpp - : be libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libshared.a localestub $(TARGET_LIBSUPC++) : Workspaces.rdef ; diff --git a/src/bin/Jamfile b/src/bin/Jamfile index 617ed5b2e2..06abda94e3 100644 --- a/src/bin/Jamfile +++ b/src/bin/Jamfile @@ -127,12 +127,12 @@ StdBinCommands StdBinCommands clockconfig.cpp query.cpp - : be $(HAIKU_LOCALE_LIBS) : $(haiku-utils_rsrc) ; + : be localestub : $(haiku-utils_rsrc) ; # commands that need libbe.so, libsupc++.so and the stub catalog StdBinCommands dstcheck.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) : $(haiku-utils_rsrc) ; + : be $(TARGET_LIBSUPC++) localestub : $(haiku-utils_rsrc) ; # Haiku-specific apps which need libbe.so if $(TARGET_PLATFORM) = haiku { @@ -194,7 +194,8 @@ StdBinCommands ObjectHdrs [ FGristFiles listusb$(SUFOBJ) ] : [ FDirName $(SUBDIR) $(DOTDOT) add-ons kernel bus_managers usb ] - [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) apps devices ] ; + [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + apps devices ] ; Includes [ FGristFiles listusb.cpp ] : usbhdr.h ; # standard commands that need libbluetooth.so, due the Bluetooth Kit @@ -215,7 +216,7 @@ StdBinCommands #standard commands that need libbe.so, libtracker.so and the stub catalog StdBinCommands filepanel.cpp - : be tracker $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) : $(haiku-utils_rsrc) ; + : be tracker $(TARGET_LIBSUPC++) localestub : $(haiku-utils_rsrc) ; # standard commands that need libncurses.a StdBinCommands diff --git a/src/bin/bash/Jamfile b/src/bin/bash/Jamfile index 5adda6b3b6..240632cd0e 100644 --- a/src/bin/bash/Jamfile +++ b/src/bin/bash/Jamfile @@ -3,20 +3,22 @@ SubDir HAIKU_TOP src bin bash ; SetSubDirSupportedPlatformsBeOSCompatible ; # split the canonical target string -local cpuName = [ Match "([^-]*)-.*" : $(HAIKU_GCC_MACHINE) ] ; -local vendorName = [ Match "[^-]*-([^-]*)" : $(HAIKU_GCC_MACHINE) ] ; -local osName = [ Match "[^-]*-[^-]*-([^-]*)" : $(HAIKU_GCC_MACHINE) ] ; +local gccMachine = $(HAIKU_GCC_MACHINE_$(TARGET_PACKAGING_ARCH)) ; +local cpuName = [ Match "([^-]*)-.*" : $(gccMachine) ] ; +local vendorName = [ Match "[^-]*-([^-]*)" : $(gccMachine) ] ; +local osName = [ Match "[^-]*-[^-]*-([^-]*)" : $(gccMachine) ] ; SubDirCcFlags -DHAVE_CONFIG_H -DPROGRAM='\"bash\"' -DSHELL -DLOCALEDIR='\"/boot/common/share/locale\"' -DPACKAGE='\"bash\"' ; -SubDirCcFlags -DCONF_MACHTYPE='\"$(HAIKU_GCC_MACHINE)\"' ; +SubDirCcFlags -DCONF_MACHTYPE='\"$(gccMachine)\"' ; SubDirCcFlags -DCONF_HOSTTYPE='\"$(cpuName)\"' ; SubDirCcFlags -DCONF_VENDOR='\"$(vendorName)\"' ; #SubDirCcFlags -DCONF_OSTYPE='\"$(osName)\"' ; SubDirCcFlags -DCONF_OSTYPE='\"beos\"' ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirSysHdrs [ FDirName $(SUBDIR) include ] ; SubDirSysHdrs [ FDirName $(SUBDIR) lib ] ; diff --git a/src/bin/bash/builtins/Jamfile b/src/bin/bash/builtins/Jamfile index d01a83ba68..18da7dcc50 100644 --- a/src/bin/bash/builtins/Jamfile +++ b/src/bin/bash/builtins/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin bash builtins ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DSHELL ; diff --git a/src/bin/bash/lib/glob/Jamfile b/src/bin/bash/lib/glob/Jamfile index 1efbd091bd..75c51e5e24 100644 --- a/src/bin/bash/lib/glob/Jamfile +++ b/src/bin/bash/lib/glob/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin bash lib glob ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DSHELL ; diff --git a/src/bin/bash/lib/readline/Jamfile b/src/bin/bash/lib/readline/Jamfile index 178e35541a..fcb3e14918 100644 --- a/src/bin/bash/lib/readline/Jamfile +++ b/src/bin/bash/lib/readline/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin bash lib readline ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DSHELL ; diff --git a/src/bin/bash/lib/sh/Jamfile b/src/bin/bash/lib/sh/Jamfile index 0267eef9e8..c94a9744c6 100644 --- a/src/bin/bash/lib/sh/Jamfile +++ b/src/bin/bash/lib/sh/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin bash lib sh ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DSHELL ; diff --git a/src/bin/bash/lib/tilde/Jamfile b/src/bin/bash/lib/tilde/Jamfile index 0e290dad40..44fe6324ff 100644 --- a/src/bin/bash/lib/tilde/Jamfile +++ b/src/bin/bash/lib/tilde/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin bash lib tilde ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DSHELL ; diff --git a/src/bin/coreutils/lib/Jamfile b/src/bin/coreutils/lib/Jamfile index 76bc1ff10c..43e49ddb2a 100644 --- a/src/bin/coreutils/lib/Jamfile +++ b/src/bin/coreutils/lib/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin coreutils lib ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DB_ENABLE_INCOMPLETE_POSIX_AT_SUPPORT ; @@ -247,7 +248,7 @@ local libSources = # 32-bit this isn't problematic as they're compatible, but they are not for 64. # GCC 2 cannot compile the included implementation, so just link to libroot's # one there. -if $(HAIKU_GCC_VERSION[1]) != 2 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) != 2 { libSources += regex.c ; } diff --git a/src/bin/coreutils/src/Jamfile b/src/bin/coreutils/src/Jamfile index 90fdf17cd9..657f7e2cda 100644 --- a/src/bin/coreutils/src/Jamfile +++ b/src/bin/coreutils/src/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin coreutils src ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DB_ENABLE_INCOMPLETE_POSIX_AT_SUPPORT ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) lib ] ; @@ -98,7 +99,7 @@ StdBinCommands pwd.c sleep.c sort.c - : libfetish.a libroot.so : $(coreutils_rsrc) ; + : libfetish.a : $(coreutils_rsrc) ; # df.c # hostid.c @@ -118,21 +119,21 @@ BinCommand ls : ls.c ls-ls.c : libfetish.a : $(coreutils_rsrc) ; BinCommand rm : - rm.c remove.c : libfetish.a libroot.so : $(coreutils_rsrc) ; + rm.c remove.c : libfetish.a : $(coreutils_rsrc) ; BinCommand chgrp : - chgrp.c chown-core.c : libfetish.a libroot.so : $(coreutils_rsrc) ; + chgrp.c chown-core.c : libfetish.a : $(coreutils_rsrc) ; BinCommand chown : chown.c [ FGristFiles chown-core.o ] - : libfetish.a libroot.so : $(coreutils_rsrc) ; + : libfetish.a : $(coreutils_rsrc) ; BinCommand cp : cp.c copy.c cp-hash.c : libfetish.a : $(coreutils_rsrc) ; BinCommand mv : mv.c [ FGristFiles copy.o cp-hash.o remove.o ] - : libfetish.a libroot.so : $(coreutils_rsrc) ; + : libfetish.a : $(coreutils_rsrc) ; BinCommand md5sum : md5sum-md5sum.c : libfetish.a : $(coreutils_rsrc) ; BinCommand sha1sum : md5sum-sha1sum.c : libfetish.a : $(coreutils_rsrc) ; @@ -150,9 +151,9 @@ BinCommand dir : BinCommand install : install.c prog-fprintf.c [ FGristFiles copy.o cp-hash.o ] : libfetish.a : $(coreutils_rsrc) ; -BinCommand mkdir : mkdir.c [ FGristFiles prog-fprintf.o ] : libfetish.a libroot.so : $(coreutils_rsrc) ; +BinCommand mkdir : mkdir.c [ FGristFiles prog-fprintf.o ] : libfetish.a : $(coreutils_rsrc) ; -BinCommand rmdir : rmdir.c [ FGristFiles prog-fprintf.o ] : libfetish.a libroot.so : $(coreutils_rsrc) ; +BinCommand rmdir : rmdir.c [ FGristFiles prog-fprintf.o ] : libfetish.a : $(coreutils_rsrc) ; BinCommand uname : uname.c uname-uname.c : libfetish.a $(TARGET_SELECT_UNAME_ETC_LIB) : $(coreutils_rsrc) ; diff --git a/src/bin/debug/strace/Jamfile b/src/bin/debug/strace/Jamfile index 2761424092..d3b37777ff 100644 --- a/src/bin/debug/strace/Jamfile +++ b/src/bin/debug/strace/Jamfile @@ -55,4 +55,5 @@ BinCommand strace : $(straceSources) ; # We need to specify the dependency on the generated syscalls file explicitly. -Includes $(straceSyscallsSource) : strace_syscalls.h ; +Includes $(straceSyscallsSource) + : strace_syscalls.h ; diff --git a/src/bin/desklink/Jamfile b/src/bin/desklink/Jamfile index 08150d432f..fec8bd616d 100644 --- a/src/bin/desklink/Jamfile +++ b/src/bin/desklink/Jamfile @@ -12,7 +12,7 @@ BinCommand desklink : VolumeControl.cpp VolumeWindow.cpp - : be libmedia.so $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be libmedia.so localestub $(TARGET_LIBSUPC++) : desklink.rdef ; diff --git a/src/bin/diffutils/lib/Jamfile b/src/bin/diffutils/lib/Jamfile index d8bf4f1a7f..7cfee300e2 100644 --- a/src/bin/diffutils/lib/Jamfile +++ b/src/bin/diffutils/lib/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin diffutils lib ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H ; SubDirSysHdrs $(SUBDIR) ; diff --git a/src/bin/diffutils/src/Jamfile b/src/bin/diffutils/src/Jamfile index cc19e90261..a354e73b3f 100644 --- a/src/bin/diffutils/src/Jamfile +++ b/src/bin/diffutils/src/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin diffutils src ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H -DLOCALEDIR=\'\"/share/locale\"\' -DPR_PROGRAM=\'\"/bin/pr\"\' -DDEFAULT_DIFF_PROGRAM=\'\"diff\"\' -D__USE_GNU ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) lib ] ; diff --git a/src/bin/findutils/find/Jamfile b/src/bin/findutils/find/Jamfile index 8f570f91b5..728d4d132a 100644 --- a/src/bin/findutils/find/Jamfile +++ b/src/bin/findutils/find/Jamfile @@ -5,8 +5,9 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) lib ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; # set some additional defines { diff --git a/src/bin/findutils/gnulib/lib/Jamfile b/src/bin/findutils/gnulib/lib/Jamfile index 57b6a7c673..480a8ca49f 100644 --- a/src/bin/findutils/gnulib/lib/Jamfile +++ b/src/bin/findutils/gnulib/lib/Jamfile @@ -4,8 +4,9 @@ SubDirSysHdrs [ FDirName $(SUBDIR) ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; # set some additional defines { diff --git a/src/bin/findutils/lib/Jamfile b/src/bin/findutils/lib/Jamfile index ab4da269c3..9328bdacf7 100644 --- a/src/bin/findutils/lib/Jamfile +++ b/src/bin/findutils/lib/Jamfile @@ -4,8 +4,9 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) gnulib lib ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; # set some additional defines { diff --git a/src/bin/findutils/locate/Jamfile b/src/bin/findutils/locate/Jamfile index 2e75fd23d3..a735ff15fa 100644 --- a/src/bin/findutils/locate/Jamfile +++ b/src/bin/findutils/locate/Jamfile @@ -5,8 +5,9 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) lib ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; # set some additional defines { diff --git a/src/bin/findutils/xargs/Jamfile b/src/bin/findutils/xargs/Jamfile index d7230589c7..a0e1a390e8 100644 --- a/src/bin/findutils/xargs/Jamfile +++ b/src/bin/findutils/xargs/Jamfile @@ -5,8 +5,9 @@ SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) lib ] ; SubDirSysHdrs [ FDirName $(SUBDIR) $(DOTDOT) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; # set some additional defines { diff --git a/src/bin/gawk/Jamfile b/src/bin/gawk/Jamfile index 4fd9b38e7b..33f8e39ffb 100644 --- a/src/bin/gawk/Jamfile +++ b/src/bin/gawk/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin gawk ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DDEFPATH='\".:/share/awk\"' -DHAVE_CONFIG_H -DGAWK -DLOCALEDIR='\"/share/locale\"' ; diff --git a/src/bin/gawk/intl/Jamfile b/src/bin/gawk/intl/Jamfile index 0b03a258e7..b8c4626167 100644 --- a/src/bin/gawk/intl/Jamfile +++ b/src/bin/gawk/intl/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src bin gawk intl ; SetSubDirSupportedPlatformsBeOSCompatible ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DLOCALEDIR='\"/share/locale\"' -DLOCALE_ALIAS_PATH='\"/share/locale\"' -DLIBDIR='\"/usr/local/lib\"' -DIN_LIBINTL -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR='\"/usr/local/lib\"' -DNO_XMALLOC -Dset_relocation_prefix=libintl_set_relocation_prefix -Drelocate=libintl_relocate -DDEPENDS_ON_LIBICONV=1 -DHAVE_CONFIG_H ; diff --git a/src/bin/gdb/gdb/Jamfile b/src/bin/gdb/gdb/Jamfile index 9860845224..c684a83159 100644 --- a/src/bin/gdb/gdb/Jamfile +++ b/src/bin/gdb/gdb/Jamfile @@ -17,8 +17,9 @@ SubDirCcFlags -DHAVE_CONFIG_H -DLOCALEDIR=\\\"/etc/locale\\\" -DMI_OUT=1 -DTUI=1 ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) cli ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) mi ] ; @@ -287,7 +288,6 @@ BinCommand gdb : gdb.c : libncurses.a - libroot.so libdebug.so libnetwork.so ; diff --git a/src/bin/gdb/libiberty/Jamfile b/src/bin/gdb/libiberty/Jamfile index 57a02b9e53..53452bd2c4 100644 --- a/src/bin/gdb/libiberty/Jamfile +++ b/src/bin/gdb/libiberty/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin gdb libiberty ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DHAVE_CONFIG_H ; diff --git a/src/bin/gdb/readline/Jamfile b/src/bin/gdb/readline/Jamfile index 19b66590a1..396b27a49a 100644 --- a/src/bin/gdb/readline/Jamfile +++ b/src/bin/gdb/readline/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin gdb readline ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; local RL_LIBRARY_VERSION = 4.3 ; diff --git a/src/bin/less/Jamfile b/src/bin/less/Jamfile index 7553613556..03f37f2f94 100644 --- a/src/bin/less/Jamfile +++ b/src/bin/less/Jamfile @@ -1,8 +1,9 @@ SubDir HAIKU_TOP src bin less ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes ] ; SubDirCcFlags -DBINDIR='\"/bin\"' -DSYSDIR='\"/etc\"' ; diff --git a/src/bin/listdev/Jamfile b/src/bin/listdev/Jamfile index be77f186b5..67bc4873c7 100644 --- a/src/bin/listdev/Jamfile +++ b/src/bin/listdev/Jamfile @@ -11,5 +11,6 @@ BinCommand listdev : ; ObjectHdrs [ FGristFiles listdev$(SUFOBJ) ] - : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) apps devices ] ; + : [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + apps devices ] ; Includes [ FGristFiles listdev.c ] : pcihdr.h ; diff --git a/src/bin/screen_blanker/Jamfile b/src/bin/screen_blanker/Jamfile index ad5b7cd7ae..89f5893e3d 100644 --- a/src/bin/screen_blanker/Jamfile +++ b/src/bin/screen_blanker/Jamfile @@ -16,7 +16,7 @@ BinCommand screen_blanker : # needed for some old/broken screen saver add-ons that do not # link against libscreensaver.so - : be game $(HAIKU_LOCALE_LIBS) libscreensaver.so $(TARGET_LIBSUPC++) + : be game localestub libscreensaver.so $(TARGET_LIBSUPC++) : screen_blanker.rdef ; diff --git a/src/kits/Jamfile b/src/kits/Jamfile index d642ea29b7..24dcc726d5 100644 --- a/src/kits/Jamfile +++ b/src/kits/Jamfile @@ -21,28 +21,34 @@ UsePrivateHeaders app interface kernel locale print shared ; # Build our libbe.so -AddResources libbe.so : - libbe_version.rdef CountryFlags.rdef LanguageFlags.rdef -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + local libbe = [ MultiArchDefaultGristFiles libbe.so ] ; + AddResources $(libbe) : + libbe_version.rdef CountryFlags.rdef LanguageFlags.rdef + ; -SetVersionScript libbe.so : libbe_versions ; + SetVersionScript $(libbe) : libbe_versions ; -SharedLibrary libbe.so : : - app_kit.o - interface_kit.o - locale_kit.o - storage_kit.o - support_kit.o + SharedLibrary $(libbe) : : + app_kit.o + interface_kit.o + locale_kit.o + storage_kit.o + support_kit.o - libstorage_kit_mime.a + [ MultiArchDefaultGristFiles libstorage_kit_mime.a ] - libicon.a - libagg.a + [ MultiArchDefaultGristFiles libicon.a ] + [ MultiArchDefaultGristFiles libagg.a ] - libroot.so # make sure it links against our libroot.so - $(TARGET_LIBSTDC++) [ BuildFeatureAttribute icu : libraries ] -; + $(TARGET_LIBSTDC++) [ BuildFeatureAttribute icu : libraries ] + ; + } +} # Build libbe_test.so diff --git a/src/kits/app/Jamfile b/src/kits/app/Jamfile index 85e267bd9e..c4aea7d68d 100644 --- a/src/kits/app/Jamfile +++ b/src/kits/app/Jamfile @@ -19,47 +19,54 @@ if $(RUN_WITHOUT_APP_SERVER) != 0 { UseLibraryHeaders icon ; UsePrivateHeaders shared app interface kernel locale notification ; -UsePrivateSystemHeaders ; SetSubDirSupportedPlatforms haiku libbe_test ; -MergeObject app_kit.o : - AppDefs.cpp - Application.cpp - AppMisc.cpp - AppServerLink.cpp - Cursor.cpp - Clipboard.cpp - DesktopLink.cpp - DirectMessageTarget.cpp - Handler.cpp - InitTerminateLibBe.cpp - Invoker.cpp - LinkReceiver.cpp - LinkSender.cpp - Looper.cpp - LooperList.cpp - Message.cpp - MessageAdapter.cpp - MessageFilter.cpp - MessageQueue.cpp - MessageRunner.cpp - Messenger.cpp - MessageUtils.cpp - Notification.cpp - PropertyInfo.cpp - PortLink.cpp - RegistrarDefs.cpp - Roster.cpp - RosterPrivate.cpp - Server.cpp - ServerLink.cpp - ServerMemoryAllocator.cpp - TokenSpace.cpp - TypeConstants.cpp +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; - # KeyStore implementation - Key.cpp - KeyStore.cpp -; + UsePrivateSystemHeaders ; + MergeObject app_kit.o : + AppDefs.cpp + Application.cpp + AppMisc.cpp + AppServerLink.cpp + Cursor.cpp + Clipboard.cpp + DesktopLink.cpp + DirectMessageTarget.cpp + Handler.cpp + InitTerminateLibBe.cpp + Invoker.cpp + LinkReceiver.cpp + LinkSender.cpp + Looper.cpp + LooperList.cpp + Message.cpp + MessageAdapter.cpp + MessageFilter.cpp + MessageQueue.cpp + MessageRunner.cpp + Messenger.cpp + MessageUtils.cpp + Notification.cpp + PropertyInfo.cpp + PortLink.cpp + RegistrarDefs.cpp + Roster.cpp + RosterPrivate.cpp + Server.cpp + ServerLink.cpp + ServerMemoryAllocator.cpp + TokenSpace.cpp + TypeConstants.cpp + + # KeyStore implementation + Key.cpp + KeyStore.cpp + ; + } +} diff --git a/src/kits/bluetooth/Jamfile b/src/kits/bluetooth/Jamfile index d74378727b..848b32d145 100644 --- a/src/kits/bluetooth/Jamfile +++ b/src/kits/bluetooth/Jamfile @@ -24,7 +24,7 @@ SharedLibrary libbluetooth.so : #UI PincodeWindow.cpp ConnectionIncoming.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be localestub $(TARGET_LIBSTDC++) ; DoCatalogs libbluetooth.so : diff --git a/src/kits/debug/Jamfile b/src/kits/debug/Jamfile index ab4a898784..b054398fc3 100644 --- a/src/kits/debug/Jamfile +++ b/src/kits/debug/Jamfile @@ -6,23 +6,34 @@ UsePrivateHeaders kernel ; UsePrivateHeaders libroot ; UsePrivateHeaders runtime_loader ; UsePrivateHeaders shared ; -UsePrivateSystemHeaders ; SubDirHdrs [ FDirName $(SUBDIR) arch ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SharedLibrary libdebug.so : - debug_support.cpp - DebugContext.cpp - DebugEventStream.cpp - DebugLooper.cpp - DebugMessageHandler.cpp - Image.cpp - SymbolLookup.cpp - TeamDebugger.cpp + UsePrivateSystemHeaders ; - # architecture specific - arch_debug_support.cpp + SEARCH_SOURCE += [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ; - : be $(TARGET_LIBSUPC++) -; + local libroot = [ MultiArchConditionalGristFiles libdebug.so + : : $(architecture) ] ; + + SharedLibrary [ MultiArchDefaultGristFiles libdebug.so ] : + debug_support.cpp + DebugContext.cpp + DebugEventStream.cpp + DebugLooper.cpp + DebugMessageHandler.cpp + Image.cpp + SymbolLookup.cpp + TeamDebugger.cpp + + # architecture specific + arch_debug_support.cpp + + : be $(TARGET_LIBSUPC++) + ; + } +} diff --git a/src/kits/interface/Jamfile b/src/kits/interface/Jamfile index 81c59e0b32..5fe62156ad 100644 --- a/src/kits/interface/Jamfile +++ b/src/kits/interface/Jamfile @@ -30,122 +30,129 @@ UsePrivateHeaders app input print interface locale shared support tracker ; UseHeaders [ FDirName $(HAIKU_TOP) src kits tracker ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) textview_support ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) layouter ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject interface_kit.o : - AbstractLayout.cpp - AbstractLayoutItem.cpp - AffineTransform.cpp - Alert.cpp - Alignment.cpp - Bitmap.cpp - BMCPrivate.cpp - Box.cpp - Button.cpp - CardLayout.cpp - ChannelControl.cpp - ChannelSlider.cpp - CheckBox.cpp - ColorConversion.cpp - ColorControl.cpp - ColorTools.cpp - Control.cpp - ControlLook.cpp - DecorInfo.cpp - Deskbar.cpp - Dragger.cpp - Font.cpp - Gradient.cpp - GradientLinear.cpp - GradientRadial.cpp - GradientRadialFocus.cpp - GradientDiamond.cpp - GradientConic.cpp - GraphicsDefs.cpp - GridLayout.cpp - GridLayoutBuilder.cpp - GridView.cpp - GroupLayout.cpp - GroupLayoutBuilder.cpp - GroupView.cpp - Input.cpp - InterfaceDefs.cpp - Layout.cpp - LayoutContext.cpp - LayoutItem.cpp - LayoutUtils.cpp - ListItem.cpp - ListView.cpp - Menu.cpp - MenuBar.cpp - MenuField.cpp - MenuItem.cpp - MenuPrivate.cpp - MenuWindow.cpp - OptionControl.cpp - OptionPopUp.cpp - OutlineListView.cpp - Picture.cpp - PictureButton.cpp - PictureDataWriter.cpp - PicturePlayer.cpp - Point.cpp - Polygon.cpp - PopUpMenu.cpp - PrintJob.cpp - PrivateScreen.cpp - RadioButton.cpp - Rect.cpp - Region.cpp - RegionSupport.cpp - Screen.cpp - ScrollBar.cpp - ScrollView.cpp - SeparatorItem.cpp - SeparatorView.cpp - Shape.cpp - Shelf.cpp - Size.cpp - Slider.cpp - SpaceLayoutItem.cpp - SplitLayout.cpp - SplitLayoutBuilder.cpp - SplitView.cpp - StatusBar.cpp - StringItem.cpp - StringView.cpp - TabView.cpp - TextControl.cpp - TextInput.cpp - TextView.cpp - ToolTip.cpp - ToolTipManager.cpp - TwoDimensionalLayout.cpp - View.cpp - ViewLayoutItem.cpp - Window.cpp - WindowStack.cpp - ZombieReplicantView.cpp + SEARCH_SOURCE += [ FDirName $(SUBDIR) textview_support ] ; + SEARCH_SOURCE += [ FDirName $(SUBDIR) layouter ] ; - # BTextView support - InlineInput.cpp - LineBuffer.cpp - StyleBuffer.cpp - TextGapBuffer.cpp - UndoBuffer.cpp - WidthBuffer.cpp + MergeObject interface_kit.o : + AbstractLayout.cpp + AbstractLayoutItem.cpp + AffineTransform.cpp + Alert.cpp + Alignment.cpp + Bitmap.cpp + BMCPrivate.cpp + Box.cpp + Button.cpp + CardLayout.cpp + ChannelControl.cpp + ChannelSlider.cpp + CheckBox.cpp + ColorConversion.cpp + ColorControl.cpp + ColorTools.cpp + Control.cpp + ControlLook.cpp + DecorInfo.cpp + Deskbar.cpp + Dragger.cpp + Font.cpp + Gradient.cpp + GradientLinear.cpp + GradientRadial.cpp + GradientRadialFocus.cpp + GradientDiamond.cpp + GradientConic.cpp + GraphicsDefs.cpp + GridLayout.cpp + GridLayoutBuilder.cpp + GridView.cpp + GroupLayout.cpp + GroupLayoutBuilder.cpp + GroupView.cpp + Input.cpp + InterfaceDefs.cpp + Layout.cpp + LayoutContext.cpp + LayoutItem.cpp + LayoutUtils.cpp + ListItem.cpp + ListView.cpp + Menu.cpp + MenuBar.cpp + MenuField.cpp + MenuItem.cpp + MenuPrivate.cpp + MenuWindow.cpp + OptionControl.cpp + OptionPopUp.cpp + OutlineListView.cpp + Picture.cpp + PictureButton.cpp + PictureDataWriter.cpp + PicturePlayer.cpp + Point.cpp + Polygon.cpp + PopUpMenu.cpp + PrintJob.cpp + PrivateScreen.cpp + RadioButton.cpp + Rect.cpp + Region.cpp + RegionSupport.cpp + Screen.cpp + ScrollBar.cpp + ScrollView.cpp + SeparatorItem.cpp + SeparatorView.cpp + Shape.cpp + Shelf.cpp + Size.cpp + Slider.cpp + SpaceLayoutItem.cpp + SplitLayout.cpp + SplitLayoutBuilder.cpp + SplitView.cpp + StatusBar.cpp + StringItem.cpp + StringView.cpp + TabView.cpp + TextControl.cpp + TextInput.cpp + TextView.cpp + ToolTip.cpp + ToolTipManager.cpp + TwoDimensionalLayout.cpp + View.cpp + ViewLayoutItem.cpp + Window.cpp + WindowStack.cpp + ZombieReplicantView.cpp - # layouter - CollapsingLayouter.cpp - ComplexLayouter.cpp - Layouter.cpp - LayoutOptimizer.cpp - OneElementLayouter.cpp - SimpleLayouter.cpp + # BTextView support + InlineInput.cpp + LineBuffer.cpp + StyleBuffer.cpp + TextGapBuffer.cpp + UndoBuffer.cpp + WidthBuffer.cpp - : libshared.a -; + # layouter + CollapsingLayouter.cpp + ComplexLayouter.cpp + Layouter.cpp + LayoutOptimizer.cpp + OneElementLayouter.cpp + SimpleLayouter.cpp + + : [ MultiArchDefaultGristFiles libshared.a ] + ; + } +} StaticLibrary libcolumnlistview.a : ColumnListView.cpp diff --git a/src/kits/locale/Jamfile b/src/kits/locale/Jamfile index 47cf074b9d..d026593b7e 100644 --- a/src/kits/locale/Jamfile +++ b/src/kits/locale/Jamfile @@ -4,7 +4,6 @@ AddSubDirSupportedPlatforms libbe_test ; UsePrivateHeaders locale shared ; UsePublicHeaders locale storage ; -UseBuildFeatureHeaders icu ; local sources = cat.cpp @@ -49,15 +48,24 @@ local sources = # NumberFormatParameters.cpp ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; - # Dependency needed to trigger downloading/unzipping the package before - # compiling the files. + UseBuildFeatureHeaders icu ; -MergeObject locale_kit.o : - $(sources) - ; + Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute icu : headers ] ; + # Dependency needed to trigger downloading/unzipping the package + # before compiling the files. -StaticLibrary liblocalestub.a - : CatalogStub.cpp - ; + MergeObject locale_kit.o : + $(sources) + ; + + StaticLibrary <$(architecture)>liblocalestub.a + : CatalogStub.cpp + ; + } +} diff --git a/src/kits/mail/Jamfile b/src/kits/mail/Jamfile index a053f84cff..4b066b0cb6 100644 --- a/src/kits/mail/Jamfile +++ b/src/kits/mail/Jamfile @@ -58,7 +58,7 @@ SharedLibrary libmail.so : $(TARGET_NETWORK_LIBS) $(TARGET_SELECT_UNAME_ETC_LIB) [ BuildFeatureAttribute openssl : libraries ] - $(HAIKU_LOCALE_LIBS) + localestub ; diff --git a/src/kits/opengl/Jamfile b/src/kits/opengl/Jamfile index c71f21771a..0a56c19ce4 100644 --- a/src/kits/opengl/Jamfile +++ b/src/kits/opengl/Jamfile @@ -37,7 +37,7 @@ LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ] -Xlinker --whole-archive -Xlinker --no-undefined ; # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { SubDirC++Flags --no-warnings ; } diff --git a/src/kits/shared/Jamfile b/src/kits/shared/Jamfile index 3ef2481b24..d1df6524ce 100644 --- a/src/kits/shared/Jamfile +++ b/src/kits/shared/Jamfile @@ -5,7 +5,8 @@ AddSubDirSupportedPlatforms libbe_test ; UseLibraryHeaders agg ; UsePrivateHeaders shared locale ; -UseHeaders [ FDirName $(HAIKU_COMMON_DEBUG_OBJECT_DIR) servers input ] ; +UseHeaders [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + servers input ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits ] ; # for RWLockManager only diff --git a/src/kits/storage/Jamfile b/src/kits/storage/Jamfile index 28fbd3537b..ca0810013b 100644 --- a/src/kits/storage/Jamfile +++ b/src/kits/storage/Jamfile @@ -3,89 +3,97 @@ SubDir HAIKU_TOP src kits storage ; SetSubDirSupportedPlatforms haiku libbe_test ; UsePrivateHeaders app kernel libroot shared storage ; -UsePrivateSystemHeaders ; # for libbe_test UsePublicHeaders [ FDirName add-ons registrar ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) disk_device ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) disk_device jobs ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) mime ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) sniffer ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject storage_kit.o : - AppFileInfo.cpp - Directory.cpp - DriverSettings.cpp - Entry.cpp - EntryList.cpp - File.cpp - FileDescriptorIO.cpp - FileIO.cpp - FindDirectory.cpp - MergedDirectory.cpp - Mime.cpp - MimeType.cpp - Node.cpp - NodeInfo.cpp - NodeMonitor.cpp - OffsetFile.cpp - Path.cpp - PathMonitor.cpp - Query.cpp - QueryPredicate.cpp - ResourceFile.cpp - ResourceItem.cpp - Resources.cpp - ResourcesContainer.cpp - ResourceStrings.cpp - Statable.cpp - SymLink.cpp - Volume.cpp - VolumeRoster.cpp - storage_support.cpp + UsePrivateSystemHeaders ; - # sniffer - CharStream.cpp - Err.cpp - DisjList.cpp - Pattern.cpp - PatternList.cpp - Parser.cpp - Range.cpp - RPattern.cpp - RPatternList.cpp - Rule.cpp + SEARCH_SOURCE += [ FDirName $(SUBDIR) disk_device ] ; + SEARCH_SOURCE += [ FDirName $(SUBDIR) disk_device jobs ] ; + SEARCH_SOURCE += [ FDirName $(SUBDIR) mime ] ; + SEARCH_SOURCE += [ FDirName $(SUBDIR) sniffer ] ; - # disk device API - DiskDevice.cpp - DiskDeviceJob.cpp - DiskDeviceJobGenerator.cpp - DiskDeviceJobQueue.cpp - DiskDeviceList.cpp - DiskDevicePrivate.cpp - DiskDeviceRoster.cpp - DiskDeviceTypes.cpp - DiskDeviceVisitor.cpp - DiskSystem.cpp - DiskSystemAddOn.cpp - DiskSystemAddOnManager.cpp - MutablePartition.cpp - Partition.cpp - PartitionDelegate.cpp - PartitioningInfo.cpp - PartitionParameterEditor.cpp - PartitionReference.cpp + MergeObject storage_kit.o : + AppFileInfo.cpp + Directory.cpp + DriverSettings.cpp + Entry.cpp + EntryList.cpp + File.cpp + FileDescriptorIO.cpp + FileIO.cpp + FindDirectory.cpp + MergedDirectory.cpp + Mime.cpp + MimeType.cpp + Node.cpp + NodeInfo.cpp + NodeMonitor.cpp + OffsetFile.cpp + Path.cpp + PathMonitor.cpp + Query.cpp + QueryPredicate.cpp + ResourceFile.cpp + ResourceItem.cpp + Resources.cpp + ResourcesContainer.cpp + ResourceStrings.cpp + Statable.cpp + SymLink.cpp + Volume.cpp + VolumeRoster.cpp + storage_support.cpp - CreateChildJob.cpp - DeleteChildJob.cpp - DefragmentJob.cpp - InitializeJob.cpp - MoveJob.cpp - RepairJob.cpp - ResizeJob.cpp - SetStringJob.cpp - UninitializeJob.cpp -; + # sniffer + CharStream.cpp + Err.cpp + DisjList.cpp + Pattern.cpp + PatternList.cpp + Parser.cpp + Range.cpp + RPattern.cpp + RPatternList.cpp + Rule.cpp + + # disk device API + DiskDevice.cpp + DiskDeviceJob.cpp + DiskDeviceJobGenerator.cpp + DiskDeviceJobQueue.cpp + DiskDeviceList.cpp + DiskDevicePrivate.cpp + DiskDeviceRoster.cpp + DiskDeviceTypes.cpp + DiskDeviceVisitor.cpp + DiskSystem.cpp + DiskSystemAddOn.cpp + DiskSystemAddOnManager.cpp + MutablePartition.cpp + Partition.cpp + PartitionDelegate.cpp + PartitioningInfo.cpp + PartitionParameterEditor.cpp + PartitionReference.cpp + + CreateChildJob.cpp + DeleteChildJob.cpp + DefragmentJob.cpp + InitializeJob.cpp + MoveJob.cpp + RepairJob.cpp + ResizeJob.cpp + SetStringJob.cpp + UninitializeJob.cpp + ; + } +} HaikuSubInclude mime ; diff --git a/src/kits/storage/mime/Jamfile b/src/kits/storage/mime/Jamfile index 5fa8d000e3..a09277dbe1 100644 --- a/src/kits/storage/mime/Jamfile +++ b/src/kits/storage/mime/Jamfile @@ -3,24 +3,26 @@ SubDir HAIKU_TOP src kits storage mime ; SetSubDirSupportedPlatforms haiku libbe_test ; UsePrivateHeaders app shared storage ; -#UsePrivateHeaders app libroot shared storage ; -#UsePrivateSystemHeaders ; -# for libbe_test -#UsePublicHeaders [ FDirName add-ons registrar ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -StaticLibrary libstorage_kit_mime.a : - AppMetaMimeCreator.cpp - AssociatedTypes.cpp - Database.cpp - DatabaseDirectory.cpp - DatabaseLocation.cpp - database_support.cpp - InstalledTypes.cpp - MimeEntryProcessor.cpp - MimeInfoUpdater.cpp - MimeSniffer.cpp - SnifferRules.cpp - Supertype.cpp - SupportingApps.cpp -; + StaticLibrary [ MultiArchDefaultGristFiles libstorage_kit_mime.a ] : + AppMetaMimeCreator.cpp + AssociatedTypes.cpp + Database.cpp + DatabaseDirectory.cpp + DatabaseLocation.cpp + database_support.cpp + InstalledTypes.cpp + MimeEntryProcessor.cpp + MimeInfoUpdater.cpp + MimeSniffer.cpp + SnifferRules.cpp + Supertype.cpp + SupportingApps.cpp + ; + } +} diff --git a/src/kits/support/Jamfile b/src/kits/support/Jamfile index 80b74f3fc9..a6e8249b90 100644 --- a/src/kits/support/Jamfile +++ b/src/kits/support/Jamfile @@ -4,26 +4,34 @@ SetSubDirSupportedPlatforms haiku libbe_test ; UsePrivateHeaders app interface media shared support ; -MergeObject support_kit.o : - Archivable.cpp - ArchivingManagers.cpp - Beep.cpp - BlockCache.cpp - BufferedDataIO.cpp - BufferIO.cpp - ByteOrder.cpp - DataIO.cpp - DateTime.cpp - Flattenable.cpp - List.cpp - Locker.cpp - PointerList.cpp - Referenceable.cpp - StopWatch.cpp - String.cpp - StringList.cpp - Url.cpp - Uuid.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -StaticLibrary libreferenceable.a : : [ FGristFiles Referenceable.o ] ; + MergeObject support_kit.o : + Archivable.cpp + ArchivingManagers.cpp + Beep.cpp + BlockCache.cpp + BufferedDataIO.cpp + BufferIO.cpp + ByteOrder.cpp + DataIO.cpp + DateTime.cpp + Flattenable.cpp + List.cpp + Locker.cpp + PointerList.cpp + Referenceable.cpp + StopWatch.cpp + String.cpp + StringList.cpp + Url.cpp + Uuid.cpp + ; + + StaticLibrary [ MultiArchDefaultGristFiles libreferenceable.a ] + : : [ FGristFiles Referenceable.o ] ; + } +} diff --git a/src/kits/textencoding/Jamfile b/src/kits/textencoding/Jamfile index fcaeac3513..a91a26e230 100644 --- a/src/kits/textencoding/Jamfile +++ b/src/kits/textencoding/Jamfile @@ -13,7 +13,7 @@ SharedLibrary libtextencoding.so : CharacterSetRoster.cpp character_sets.cpp utf8_conversions.cpp - : be libiconv.a $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) ; + : be libiconv.a $(TARGET_LIBSUPC++) localestub ; DoCatalogs libtextencoding.so : x-vnd.Haiku-libtextencoding diff --git a/src/kits/tracker/Jamfile b/src/kits/tracker/Jamfile index cf3ec02cfe..a9cdde5293 100644 --- a/src/kits/tracker/Jamfile +++ b/src/kits/tracker/Jamfile @@ -93,7 +93,7 @@ SharedLibrary libtracker.so : VolumeWindow.cpp WidgetAttributeText.cpp - : be translation $(vector_icon_libs) $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) libshared.a + : be translation $(vector_icon_libs) $(TARGET_LIBSTDC++) localestub libshared.a ; DoCatalogs libtracker.so : diff --git a/src/libs/bsd/Jamfile b/src/libs/bsd/Jamfile index f35d5b4367..eae0800511 100644 --- a/src/libs/bsd/Jamfile +++ b/src/libs/bsd/Jamfile @@ -4,19 +4,24 @@ SetSubDirSupportedPlatforms $(HAIKU_BONE_COMPATIBLE_PLATFORMS) ; UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; -SharedLibrary libbsd.so : - daemon.c - err.c - fgetln.c - getpass.c - issetugid.c - progname.c - pty.cpp - signal.c - string.cpp - stringlist.c - unvis.c - usershell.c - vis.c - wait.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + SharedLibrary [ MultiArchDefaultGristFiles libbsd.so ] : + daemon.c + err.c + fgetln.c + getpass.c + issetugid.c + progname.c + pty.cpp + signal.c + string.cpp + stringlist.c + unvis.c + usershell.c + vis.c + wait.c + ; + } +} diff --git a/src/libs/glut/Jamfile b/src/libs/glut/Jamfile index 0d3047021d..8dd6e2f583 100644 --- a/src/libs/glut/Jamfile +++ b/src/libs/glut/Jamfile @@ -51,7 +51,7 @@ local sourcesCpp = # For GCC2 -if $(HAIKU_GCC_VERSION[1]) < 3 { +if $(TARGET_GCC_VERSION_$(TARGET_PACKAGING_ARCH)[1]) < 3 { SubDirC++Flags --no-warnings ; } diff --git a/src/libs/iconv/Jamfile b/src/libs/iconv/Jamfile index 1d3e90948d..80c4a32cf8 100644 --- a/src/libs/iconv/Jamfile +++ b/src/libs/iconv/Jamfile @@ -6,8 +6,9 @@ AddSubDirSupportedPlatforms libbe_test ; UseLibraryHeaders iconv ; # disable warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wmissing-prototypes -Wsign-compare ] ; SubDirCcFlags -DLIBDIR="\\\"/boot/system/lib\\\"" diff --git a/src/libs/posix_error_mapper/Jamfile b/src/libs/posix_error_mapper/Jamfile index 4203401086..d36da2845a 100644 --- a/src/libs/posix_error_mapper/Jamfile +++ b/src/libs/posix_error_mapper/Jamfile @@ -1,18 +1,23 @@ SubDir HAIKU_TOP src libs posix_error_mapper ; -StaticLibrary libposix_error_mapper.a : - misc.cpp - pthread_attr.cpp - pthread_condattr.cpp - pthread_cond.cpp - pthread_misc.cpp - pthread_mutexattr.cpp - pthread_mutex.cpp - pthread_rwlockattr.cpp - pthread_rwlock.cpp - pthread_specific.cpp - pthread_spinlock.cpp - pthread_thread.cpp - signal.cpp - time.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + StaticLibrary [ MultiArchDefaultGristFiles libposix_error_mapper.a ] : + misc.cpp + pthread_attr.cpp + pthread_condattr.cpp + pthread_cond.cpp + pthread_misc.cpp + pthread_mutexattr.cpp + pthread_mutex.cpp + pthread_rwlockattr.cpp + pthread_rwlock.cpp + pthread_specific.cpp + pthread_spinlock.cpp + pthread_thread.cpp + signal.cpp + time.cpp + ; + } +} diff --git a/src/libs/stdc++/Jamfile b/src/libs/stdc++/Jamfile index 9054e4d324..d5b8441f74 100644 --- a/src/libs/stdc++/Jamfile +++ b/src/libs/stdc++/Jamfile @@ -1,9 +1,11 @@ SubDir HAIKU_TOP src libs stdc++ ; -if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) { - SubInclude HAIKU_TOP src libs stdc++ legacy ; -} +if $(TARGET_PLATFORM) = haiku { + if x86_gcc2 in $(TARGET_PACKAGING_ARCHS) { + HaikuSubInclude legacy ; + } -if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) { - SubInclude HAIKU_TOP src libs stdc++ current ; + if $(TARGET_PACKAGING_ARCHS) != x86_gcc2 { + HaikuSubInclude current ; + } } diff --git a/src/libs/stdc++/current/Jamfile b/src/libs/stdc++/current/Jamfile index 1a11b243f0..6561d8756f 100644 --- a/src/libs/stdc++/current/Jamfile +++ b/src/libs/stdc++/current/Jamfile @@ -10,14 +10,27 @@ rule CreateSharedC++LibraryFromArchive sharedLib : staticLib } -# create libstdc++.so from the libstdc++.a built with the compiler -if $(HAIKU_BUILD_SHARED_LIBSTDC++) { - CreateSharedC++LibraryFromArchive $(HAIKU_SHARED_LIBSTDC++) - : $(HAIKU_STATIC_LIBSTDC++) ; -} +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -# create libsupc++.so from the libsupc++.a build with the compiler -if $(HAIKU_BUILD_SHARED_LIBSUPC++) { - CreateSharedC++LibraryFromArchive $(HAIKU_SHARED_LIBSUPC++) - : $(HAIKU_STATIC_LIBSUPC++) ; + if $(TARGET_GCC_VERSION_$(architecture)[1]) = 2 { + continue ; + } + + # create libstdc++.so from the libstdc++.a built with the compiler + if $(HAIKU_BUILD_SHARED_LIBSTDC++_$(architecture)) { + CreateSharedC++LibraryFromArchive + $(HAIKU_SHARED_LIBSTDC++_$(architecture)) + : $(HAIKU_STATIC_LIBSTDC++_$(architecture)) ; + } + + # create libsupc++.so from the libsupc++.a build with the compiler + if $(HAIKU_BUILD_SHARED_LIBSUPC++_$(architecture)) { + CreateSharedC++LibraryFromArchive + $(HAIKU_SHARED_LIBSUPC++_$(architecture)) + : $(HAIKU_STATIC_LIBSUPC++_$(architecture)) ; + } + } } diff --git a/src/libs/stdc++/legacy/Jamfile b/src/libs/stdc++/legacy/Jamfile index 516d688430..3593847240 100644 --- a/src/libs/stdc++/legacy/Jamfile +++ b/src/libs/stdc++/legacy/Jamfile @@ -1,178 +1,195 @@ SubDir HAIKU_TOP src libs stdc++ legacy ; -# disable undesired warnings, and add some required C++ flags -CCFLAGS += -Wno-missing-prototypes ; -C++FLAGS += -nostdinc++ -fno-implicit-templates -Wno-sign-compare -fpic ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_gcc2 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -# define header-searchpaths all by ourselves, as including system headers -# messes things up: -# use the following paths to make use of the headers contained in glibc, -# but this doesn't work yet, as the libio we are using here and the one -# contained in our libroot are different versions. -SYSHDRS = - $(SUBDIR) - [ FDirName $(HAIKU_TOP) src system libroot posix glibc libio ] - [ FDirName $(HAIKU_TOP) src system libroot posix glibc stdlib ] - [ FDirName $(HAIKU_TOP) src system libroot posix glibc stdio-common ] - [ FDirName $(HAIKU_TOP) src system libroot posix glibc include ] - [ FDirName $(HAIKU_TOP) src system libroot posix glibc include arch x86 ] - [ FDirName $(HAIKU_TOP) headers cpp ] - [ FDirName $(HAIKU_TOP) src system libroot posix glibc ] - [ FDirName $(HAIKU_TOP) headers posix ] - [ FDirName $(HAIKU_TOP) headers os ] - [ FDirName $(HAIKU_TOP) headers os kernel ] - [ FDirName $(HAIKU_TOP) headers os storage ] - [ FDirName $(HAIKU_TOP) headers os support ] - $(TARGET_GCC_HEADERS_DIR) ; # such that include_next will work + # disable undesired warnings, and add some required C++ flags + CCFLAGS += -Wno-missing-prototypes ; + C++FLAGS += -nostdinc++ -fno-implicit-templates -Wno-sign-compare + -fpic ; -UsePrivateHeaders libroot ; + # define header-searchpaths all by ourselves, as including system headers + # messes things up: + # use the following paths to make use of the headers contained in glibc, + # but this doesn't work yet, as the libio we are using here and the one + # contained in our libroot are different versions. + local glibcDir + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc ] ; + SYSHDRS = + $(SUBDIR) + [ FDirName $(glibcDir) libio ] + [ FDirName $(glibcDir) stdlib ] + [ FDirName $(glibcDir) stdio-common ] + [ FDirName $(glibcDir) include ] + [ FDirName $(glibcDir) include arch x86 ] + [ FDirName $(HAIKU_TOP) headers cpp ] + $(glibcDir) + [ FDirName $(HAIKU_TOP) headers posix ] + [ FDirName $(HAIKU_TOP) headers os ] + [ FDirName $(HAIKU_TOP) headers os kernel ] + [ FDirName $(HAIKU_TOP) headers os storage ] + [ FDirName $(HAIKU_TOP) headers os support ] + $(HAIKU_GCC_HEADERS_DIR_x86_gcc2) + # so that include_next will work + ; -# some source-files generate several different objects, depending on -# the defines that are used during the compilation call. -# So we explicitly state each of these (with their respective defines): -rule GenerateStdC++Object -{ - # GenerateStdC++Object : : ; - local object = [ FGristFiles $(1) ] ; - local sources = $(2) ; - local defines = $(3) ; + UsePrivateHeaders libroot ; - if $(object) { - Object $(object) : $(sources) ; - ObjectDefines $(object) : $(defines) ; - } else { - Objects $(sources) ; - ObjectDefines $(sources) : $(defines) ; + # some source-files generate several different objects, depending on + # the defines that are used during the compilation call. + # So we explicitly state each of these (with their respective defines): + rule GenerateStdC++Object + { + # GenerateStdC++Object : : ; + local object = [ FGristFiles $(1) ] ; + local sources = $(2) ; + local defines = $(3) ; + + if $(object) { + Object $(object) : $(sources) ; + ObjectDefines $(object) : $(defines) ; + } else { + Objects $(sources) ; + ObjectDefines $(sources) : $(defines) ; + } + } + + GenerateStdC++Object cstrio.o + : sinst.cc + : C EXTRACT INSERT GETLINE + ; + + GenerateStdC++Object cstrmain.o + : sinst.cc + : C REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC EQSS EQPS EQSP + NESS NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP LESS LEPS LESP GESS + GEPS GESP ; + + GenerateStdC++Object dcomio.o + : cinst.cc + : D EXTRACT INSERT ; + + GenerateStdC++Object dcomplex.o + : cinst.cc + : D MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC + DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG + POLAR CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN + SINH SQRT ; + + GenerateStdC++Object fcomio.o + : cinst.cc + : F EXTRACT INSERT ; + + GenerateStdC++Object fcomplex.o + : cinst.cc + : F MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC + DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG + POLAR CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC SIN + SINH SQRT ; + + GenerateStdC++Object ldcomio.o + : cinst.cc + : LD EXTRACT INSERT ; + + GenerateStdC++Object ldcomplex.o + : cinst.cc + : LD MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC + DIVCC DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS + ARG POLAR CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC + SIN SINH SQRT ; + + # generate standard objects through our new rule, too: + GenerateStdC++Object + : cmathi.cc + cstdlibi.cc + cstringi.cc + stdexcepti.cc ; + + # c++ parts from libio: + GenerateStdC++Object + : builtinbuf.cc + editbuf.cc + filebuf.cc + fstream.cc + indstream.cc + ioassign.cc + ioextend.cc + iomanip.cc + iostream.cc + isgetline.cc + isgetsb.cc + isscan.cc + osform.cc + parsestream.cc + pfstream.cc + PlotFile.cc + procbuf.cc + sbform.cc + sbgetline.cc + sbscan.cc + SFile.cc + stdexcepti.cc + stdiostream.cc + stdstrbufs.cc + stdstreams.cc + stlinst.cc + stream.cc + streambuf.cc + strstream.cc ; + + # stuff imported from libiberty: + GenerateStdC++Object + : basename.c getpagesize.c insque.c sigsetmask.c strerror.c + vfork.c ; + + SharedLibraryFromObjects libstdc++.r4.so : + basename.o + builtinbuf.o + cmathi.o + cstdlibi.o + cstringi.o + cstrio.o + cstrmain.o + dcomio.o + dcomplex.o + editbuf.o + fcomio.o + fcomplex.o + filebuf.o + fstream.o + getpagesize.o + indstream.o + insque.o + ioassign.o + ioextend.o + iomanip.o + iostream.o + isgetline.o + isgetsb.o + isscan.o + ldcomio.o + ldcomplex.o + osform.o + parsestream.o + pfstream.o + PlotFile.o + procbuf.o + sbform.o + sbgetline.o + sbscan.o + SFile.o + sigsetmask.o + stdexcepti.o + stdiostream.o + stdstrbufs.o + stdstreams.o + stlinst.o + stream.o + streambuf.o + strerror.o + strstream.o + vfork.o ; } } - -GenerateStdC++Object cstrio.o - : sinst.cc - : C EXTRACT INSERT GETLINE - ; - -GenerateStdC++Object cstrmain.o - : sinst.cc - : C REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC EQSS EQPS EQSP NESS NEPS - NESP LTSS LTPS LTSP GTSS GTPS GTSP LESS LEPS LESP GESS GEPS GESP ; - -GenerateStdC++Object dcomio.o - : cinst.cc - : D EXTRACT INSERT ; - -GenerateStdC++Object dcomplex.o - : cinst.cc - : D MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF - DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS - COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ; - -GenerateStdC++Object fcomio.o - : cinst.cc - : F EXTRACT INSERT ; - -GenerateStdC++Object fcomplex.o - : cinst.cc - : F MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF - DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS - COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ; - -GenerateStdC++Object ldcomio.o - : cinst.cc - : LD EXTRACT INSERT ; - -GenerateStdC++Object ldcomplex.o - : cinst.cc - : LD MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC DIVCC DIVCF - DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS ARG POLAR CONJ NORM COS - COSH EXP LOG POWCC POWCF POWCI POWFC SIN SINH SQRT ; - -# generate standard objects through our new rule, too: -GenerateStdC++Object - : cmathi.cc - cstdlibi.cc - cstringi.cc - stdexcepti.cc ; - -# c++ parts from libio: -GenerateStdC++Object - : builtinbuf.cc - editbuf.cc - filebuf.cc - fstream.cc - indstream.cc - ioassign.cc - ioextend.cc - iomanip.cc - iostream.cc - isgetline.cc - isgetsb.cc - isscan.cc - osform.cc - parsestream.cc - pfstream.cc - PlotFile.cc - procbuf.cc - sbform.cc - sbgetline.cc - sbscan.cc - SFile.cc - stdexcepti.cc - stdiostream.cc - stdstrbufs.cc - stdstreams.cc - stlinst.cc - stream.cc - streambuf.cc - strstream.cc ; - -# stuff imported from libiberty: -GenerateStdC++Object - : basename.c getpagesize.c insque.c sigsetmask.c strerror.c vfork.c ; - -SharedLibraryFromObjects libstdc++.r4.so : - basename.o - builtinbuf.o - cmathi.o - cstdlibi.o - cstringi.o - cstrio.o - cstrmain.o - dcomio.o - dcomplex.o - editbuf.o - fcomio.o - fcomplex.o - filebuf.o - fstream.o - getpagesize.o - indstream.o - insque.o - ioassign.o - ioextend.o - iomanip.o - iostream.o - isgetline.o - isgetsb.o - isscan.o - ldcomio.o - ldcomplex.o - osform.o - parsestream.o - pfstream.o - PlotFile.o - procbuf.o - sbform.o - sbgetline.o - sbscan.o - SFile.o - sigsetmask.o - stdexcepti.o - stdiostream.o - stdstrbufs.o - stdstreams.o - stlinst.o - stream.o - streambuf.o - strerror.o - strstream.o - vfork.o ; diff --git a/src/preferences/appearance/Jamfile b/src/preferences/appearance/Jamfile index 90a2101df2..e78f2ea108 100644 --- a/src/preferences/appearance/Jamfile +++ b/src/preferences/appearance/Jamfile @@ -28,7 +28,7 @@ Preference Appearance : #FontMenu.cpp #MenuView.cpp - : be $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) localestub : Appearance.rdef ; diff --git a/src/preferences/backgrounds/Jamfile b/src/preferences/backgrounds/Jamfile index 3677788c8b..b537b7ac0e 100644 --- a/src/preferences/backgrounds/Jamfile +++ b/src/preferences/backgrounds/Jamfile @@ -7,7 +7,7 @@ Preference Backgrounds : Backgrounds.cpp BackgroundsView.cpp ImageFilePanel.cpp - : be tracker translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker translation $(TARGET_LIBSUPC++) localestub : Backgrounds.rdef ; diff --git a/src/preferences/bluetooth/Jamfile b/src/preferences/bluetooth/Jamfile index 351cab064f..82452ba2be 100644 --- a/src/preferences/bluetooth/Jamfile +++ b/src/preferences/bluetooth/Jamfile @@ -15,7 +15,7 @@ Preference Bluetooth : ExtendedLocalDeviceView.cpp InquiryPanel.cpp RemoteDevicesView.cpp - : be libbluetooth.so $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be libbluetooth.so $(TARGET_LIBSUPC++) localestub ; DoCatalogs Bluetooth : diff --git a/src/preferences/cpufrequency/Jamfile b/src/preferences/cpufrequency/Jamfile index 240b51dd20..a752a37d63 100644 --- a/src/preferences/cpufrequency/Jamfile +++ b/src/preferences/cpufrequency/Jamfile @@ -8,7 +8,7 @@ Preference CPUFrequency : DriverInterface.cpp main.cpp StatusView.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : cpufrequency.rdef ; diff --git a/src/preferences/datatranslations/Jamfile b/src/preferences/datatranslations/Jamfile index e61c82df16..c88b84da4a 100644 --- a/src/preferences/datatranslations/Jamfile +++ b/src/preferences/datatranslations/Jamfile @@ -10,7 +10,7 @@ Preference DataTranslations : DataTranslationsSettings.cpp TranslatorListView.cpp - : be translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) libshared.a + : be translation $(TARGET_LIBSUPC++) localestub libshared.a : DataTranslations.rdef ; diff --git a/src/preferences/deskbar/Jamfile b/src/preferences/deskbar/Jamfile index 61994bb95a..ca82149392 100644 --- a/src/preferences/deskbar/Jamfile +++ b/src/preferences/deskbar/Jamfile @@ -6,7 +6,7 @@ Preference Deskbar : DeskbarPreferences.cpp : - be $(HAIKU_LOCALE_LIBS) + be localestub : DeskbarPreferences.rdef ; diff --git a/src/preferences/filetypes/Jamfile b/src/preferences/filetypes/Jamfile index 3da3b5db08..4244c50604 100644 --- a/src/preferences/filetypes/Jamfile +++ b/src/preferences/filetypes/Jamfile @@ -25,7 +25,7 @@ Preference FileTypes : PreferredAppMenu.cpp StringView.cpp - : be tracker $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be tracker $(TARGET_LIBSUPC++) localestub : FileTypes.rdef FileTypes.icons.rdef ; diff --git a/src/preferences/fonts/Jamfile b/src/preferences/fonts/Jamfile index de445f592c..168ca5d3c3 100644 --- a/src/preferences/fonts/Jamfile +++ b/src/preferences/fonts/Jamfile @@ -6,7 +6,7 @@ Preference Fonts : FontView.cpp main.cpp MainWindow.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : Fonts.rdef ; diff --git a/src/preferences/keyboard/Jamfile b/src/preferences/keyboard/Jamfile index afd20f1402..80db6e39ae 100644 --- a/src/preferences/keyboard/Jamfile +++ b/src/preferences/keyboard/Jamfile @@ -14,7 +14,7 @@ Preference Keyboard : KeyboardSettings.cpp KeyboardView.cpp KeyboardWindow.cpp - : translation be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : translation be $(TARGET_LIBSUPC++) localestub : Keyboard.rdef ; diff --git a/src/preferences/keymap/Jamfile b/src/preferences/keymap/Jamfile index 173d67f542..6f0c183160 100644 --- a/src/preferences/keymap/Jamfile +++ b/src/preferences/keymap/Jamfile @@ -13,7 +13,7 @@ Preference Keymap : KeymapWindow.cpp ModifierKeysWindow.cpp - : be tracker $(HAIKU_LOCALE_LIBS) libshared.a $(TARGET_LIBSTDC++) + : be tracker localestub libshared.a $(TARGET_LIBSTDC++) : Keymap.rdef ; diff --git a/src/preferences/locale/Jamfile b/src/preferences/locale/Jamfile index 3cc167bd3e..c03be7987f 100644 --- a/src/preferences/locale/Jamfile +++ b/src/preferences/locale/Jamfile @@ -13,7 +13,7 @@ local sources = Preference Locale : $(sources) : be $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) libshared.a - $(HAIKU_LOCALE_LIBS) + localestub : Locale.rdef ; diff --git a/src/preferences/mail/Jamfile b/src/preferences/mail/Jamfile index 947655b0c1..460ecca841 100644 --- a/src/preferences/mail/Jamfile +++ b/src/preferences/mail/Jamfile @@ -30,7 +30,7 @@ Preference E-mail $(sources) : be libmail.so $(HAIKU_NETWORK_LIBS) $(TARGET_NETAPI_LIB) $(TARGET_LIBSTDC++) - $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + $(TARGET_LIBSUPC++) localestub ; DoCatalogs E-mail diff --git a/src/preferences/media/Jamfile b/src/preferences/media/Jamfile index ca1cd695fa..048a55e745 100644 --- a/src/preferences/media/Jamfile +++ b/src/preferences/media/Jamfile @@ -15,7 +15,7 @@ Preference Media : MediaListItem.cpp MediaViews.cpp MediaWindow.cpp - : media be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : media be localestub $(TARGET_LIBSUPC++) : media.rdef ; diff --git a/src/preferences/mouse/Jamfile b/src/preferences/mouse/Jamfile index 72b439481c..0cd82cf7bb 100644 --- a/src/preferences/mouse/Jamfile +++ b/src/preferences/mouse/Jamfile @@ -8,7 +8,7 @@ Preference Mouse : MouseWindow.cpp MouseView.cpp SettingsView.cpp - : translation be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : translation be $(TARGET_LIBSUPC++) localestub : Mouse.rdef ; diff --git a/src/preferences/network/Jamfile b/src/preferences/network/Jamfile index 94ff2f4b0d..d56b034007 100644 --- a/src/preferences/network/Jamfile +++ b/src/preferences/network/Jamfile @@ -13,7 +13,7 @@ Preference Network : RadioView.cpp WirelessNetworkMenuItem.cpp - : be $(HAIKU_NETWORK_LIBS) $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(HAIKU_NETWORK_LIBS) $(TARGET_LIBSUPC++) localestub libbnetapi.so : Network.rdef ; diff --git a/src/preferences/notifications/Jamfile b/src/preferences/notifications/Jamfile index a97266066d..10f2613922 100644 --- a/src/preferences/notifications/Jamfile +++ b/src/preferences/notifications/Jamfile @@ -12,7 +12,7 @@ Application Notifications : GeneralView.cpp DisplayView.cpp NotificationsView.cpp - : be translation libcolumnlistview.a libnotification.a $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be translation libcolumnlistview.a libnotification.a $(TARGET_LIBSTDC++) localestub : Notifications.rdef ; diff --git a/src/preferences/printers/Jamfile b/src/preferences/printers/Jamfile index 1a4068512d..4fdf9da0db 100644 --- a/src/preferences/printers/Jamfile +++ b/src/preferences/printers/Jamfile @@ -17,7 +17,7 @@ Preference Printers : translation libprintutils.a $(TARGET_LIBSUPC++) - $(HAIKU_LOCALE_LIBS) + localestub : Printers.rdef ; diff --git a/src/preferences/screen/Jamfile b/src/preferences/screen/Jamfile index d89e504f6f..8327ac3278 100644 --- a/src/preferences/screen/Jamfile +++ b/src/preferences/screen/Jamfile @@ -19,7 +19,7 @@ Preference Screen : ScreenSettings.cpp ScreenWindow.cpp Utility.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) libaccelerantscommon.a + : be $(TARGET_LIBSUPC++) localestub libaccelerantscommon.a : Screen.rdef ; diff --git a/src/preferences/screensaver/Jamfile b/src/preferences/screensaver/Jamfile index 93781577cb..b8795a884f 100644 --- a/src/preferences/screensaver/Jamfile +++ b/src/preferences/screensaver/Jamfile @@ -19,7 +19,7 @@ Preference ScreenSaver : # needed for some old/broken screen saver add-ons that do not # link against libscreensaver.so - : tracker libscreensaver.so be $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : tracker libscreensaver.so be $(TARGET_LIBSTDC++) localestub : ScreenSaver.rdef ; diff --git a/src/preferences/shortcuts/Jamfile b/src/preferences/shortcuts/Jamfile index 82a323d0f1..efa90535b0 100644 --- a/src/preferences/shortcuts/Jamfile +++ b/src/preferences/shortcuts/Jamfile @@ -19,7 +19,7 @@ Preference Shortcuts : PrefilledBitmap.cpp ScrollViewCorner.cpp - : be $(HAIKU_LOCALE_LIBS) tracker libshortcuts_shared.a $(TARGET_LIBSTDC++) + : be localestub tracker libshortcuts_shared.a $(TARGET_LIBSTDC++) : Shortcuts.rdef ; diff --git a/src/preferences/sounds/Jamfile b/src/preferences/sounds/Jamfile index 404fa4cd75..92ee5d040c 100644 --- a/src/preferences/sounds/Jamfile +++ b/src/preferences/sounds/Jamfile @@ -8,7 +8,7 @@ Preference Sounds : HApp.cpp HWindow.cpp HEventList.cpp - : be libcolumnlistview.a game $(HAIKU_LOCALE_LIBS) tracker libmedia.so + : be libcolumnlistview.a game localestub tracker libmedia.so $(TARGET_LIBSUPC++) : Sounds.rdef ; diff --git a/src/preferences/time/Jamfile b/src/preferences/time/Jamfile index 907507f462..9b5fa9b5e4 100644 --- a/src/preferences/time/Jamfile +++ b/src/preferences/time/Jamfile @@ -32,7 +32,7 @@ Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; Preference Time : $(sources) - : be libshared.a $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) $(HAIKU_NETWORK_LIBS) + : be libshared.a $(TARGET_LIBSTDC++) localestub $(HAIKU_NETWORK_LIBS) : Time.rdef ; diff --git a/src/preferences/touchpad/Jamfile b/src/preferences/touchpad/Jamfile index f042b11a18..684eb85107 100644 --- a/src/preferences/touchpad/Jamfile +++ b/src/preferences/touchpad/Jamfile @@ -6,7 +6,7 @@ Preference Touchpad : TouchpadPref.cpp TouchpadPrefView.cpp main.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : Touchpad.rdef ; diff --git a/src/preferences/tracker/Jamfile b/src/preferences/tracker/Jamfile index 35fcb26be5..22b85324ce 100644 --- a/src/preferences/tracker/Jamfile +++ b/src/preferences/tracker/Jamfile @@ -4,7 +4,7 @@ Preference Tracker : TrackerPreferences.cpp : - be $(HAIKU_LOCALE_LIBS) + be localestub : TrackerPreferences.rdef ; diff --git a/src/preferences/virtualmemory/Jamfile b/src/preferences/virtualmemory/Jamfile index 672552e5dc..f35c2236c0 100644 --- a/src/preferences/virtualmemory/Jamfile +++ b/src/preferences/virtualmemory/Jamfile @@ -8,7 +8,7 @@ Preference VirtualMemory : Settings.cpp $(DRIVER_SETTINGS) - : be libshared.a $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be libshared.a $(TARGET_LIBSTDC++) localestub : VirtualMemory.rdef ; diff --git a/src/servers/debug/Jamfile b/src/servers/debug/Jamfile index d643d8c425..e9a07d4c17 100644 --- a/src/servers/debug/Jamfile +++ b/src/servers/debug/Jamfile @@ -11,11 +11,10 @@ Server debug_server : DebugServer.cpp : - libroot.so # Haiku libroot - libbe.so # Haiku libbe + be libdebug.so $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) + localestub ; DoCatalogs debug_server : diff --git a/src/servers/mail/Jamfile b/src/servers/mail/Jamfile index 894506a436..1fceea8fe7 100644 --- a/src/servers/mail/Jamfile +++ b/src/servers/mail/Jamfile @@ -19,7 +19,7 @@ Server mail_daemon : MailDaemon.cpp main.cpp Notifier.cpp - : be libmail.so tracker $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : be libmail.so tracker localestub $(TARGET_LIBSTDC++) $(TARGET_NETWORK_LIBS) ; diff --git a/src/servers/mount/Jamfile b/src/servers/mount/Jamfile index 3a7b1b604d..3d1a658922 100644 --- a/src/servers/mount/Jamfile +++ b/src/servers/mount/Jamfile @@ -7,7 +7,7 @@ Server mount_server AutoMounter.cpp # AutoMounterSettings.cpp : - libbe.so $(HAIKU_LOCALE_LIBS) + libbe.so localestub $(TARGET_LIBSTDC++) : mount_server.rdef diff --git a/src/servers/notification/Jamfile b/src/servers/notification/Jamfile index 1341834f88..d11a04503f 100644 --- a/src/servers/notification/Jamfile +++ b/src/servers/notification/Jamfile @@ -7,7 +7,7 @@ Server notification_server : NotificationServer.cpp NotificationView.cpp NotificationWindow.cpp - : be translation $(TARGET_LIBSTDC++) libnotification.a $(HAIKU_LOCALE_LIBS) + : be translation $(TARGET_LIBSTDC++) libnotification.a localestub : notification_server.rdef ; diff --git a/src/servers/print/Jamfile b/src/servers/print/Jamfile index e1ede39e33..7649d15dd2 100644 --- a/src/servers/print/Jamfile +++ b/src/servers/print/Jamfile @@ -24,7 +24,7 @@ LinkAgainst print_server : be root translation - $(HAIKU_LOCALE_LIBS) + localestub libprint.a libprintutils.a $(TARGET_LIBSUPC++) diff --git a/src/servers/print_addon/Jamfile b/src/servers/print_addon/Jamfile index a8e50d762e..e896271edb 100644 --- a/src/servers/print_addon/Jamfile +++ b/src/servers/print_addon/Jamfile @@ -14,6 +14,6 @@ LinkAgainst print_addon_server : be root libprintutils.a - $(HAIKU_LOCALE_LIBS) + localestub $(TARGET_LIBSUPC++) ; diff --git a/src/servers/registrar/Jamfile b/src/servers/registrar/Jamfile index 13a3540767..bf02ee4dd4 100644 --- a/src/servers/registrar/Jamfile +++ b/src/servers/registrar/Jamfile @@ -51,7 +51,7 @@ Server registrar libstorage_kit_mime.a be $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) + localestub : registrar.rdef ; diff --git a/src/servers/syslog_daemon/Jamfile b/src/servers/syslog_daemon/Jamfile index 0cb7641cdd..455afda7d1 100644 --- a/src/servers/syslog_daemon/Jamfile +++ b/src/servers/syslog_daemon/Jamfile @@ -13,7 +13,7 @@ Server syslog_daemon : # ToDo: this can be removed for the Haiku build strlcpy.c : - be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + be $(TARGET_LIBSUPC++) localestub ; DoCatalogs syslog_daemon : diff --git a/src/system/boot/Jamfile b/src/system/boot/Jamfile index d7adfb46e8..3c704f9650 100644 --- a/src/system/boot/Jamfile +++ b/src/system/boot/Jamfile @@ -88,7 +88,7 @@ rule BuildCoffLoader { actions BuildCoffLoader bind HACK_COFF { rm -f $(1) - $(TARGET_OBJCOPY) -O $(COFF_FORMAT) $(2) $(1) + $(TARGET_OBJCOPY_$(TARGET_PACKAGING_ARCH)) -O $(COFF_FORMAT) $(2) $(1) #$(CP) $(2) $(1) $(HACK_COFF) $(1) } @@ -111,7 +111,7 @@ rule BuildBiosLoader { actions BuildBiosLoader { rm -f $(1) - $(TARGET_OBJCOPY) -O binary $(2) $(1) + $(TARGET_OBJCOPY_$(TARGET_PACKAGING_ARCH)) -O binary $(2) $(1) } BuildBiosLoader haiku_loader : boot_loader_$(TARGET_BOOT_PLATFORM) ; diff --git a/src/system/boot/platform/atari_m68k/Jamfile b/src/system/boot/platform/atari_m68k/Jamfile index b71de5a25d..e8eb76030b 100644 --- a/src/system/boot/platform/atari_m68k/Jamfile +++ b/src/system/boot/platform/atari_m68k/Jamfile @@ -99,7 +99,7 @@ rule AtariBootPrgLd { # AtariBootPrgLd : : : ; - LINK on $(1) = $(TARGET_LD) ; + LINK on $(1) = $(TARGET_LD_$(TARGET_PACKAGING_ARCH)) ; LINKFLAGS on $(1) = $(4) ; if $(3) { LINKFLAGS on $(1) += --script=$(3) ; } diff --git a/src/system/glue/Jamfile b/src/system/glue/Jamfile index d0f11c46bb..950e380e78 100644 --- a/src/system/glue/Jamfile +++ b/src/system/glue/Jamfile @@ -1,11 +1,19 @@ SubDir HAIKU_TOP src system glue ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + UsePrivateSystemHeaders ; -KernelObjects - init_term_dyn.c - start_dyn.c - haiku_version_glue.c -; + KernelObjects + init_term_dyn.c + start_dyn.c + haiku_version_glue.c + ; + } +} -SubInclude HAIKU_TOP src system glue arch ; +local arch ; +for arch in $(TARGET_ARCHS) { + SubInclude HAIKU_TOP src system glue arch $(arch) ; +} diff --git a/src/system/glue/arch/Jamfile b/src/system/glue/arch/Jamfile deleted file mode 100644 index 9bb997991c..0000000000 --- a/src/system/glue/arch/Jamfile +++ /dev/null @@ -1,3 +0,0 @@ -SubDir HAIKU_TOP src system glue arch ; - -SubInclude HAIKU_TOP src system glue arch $(TARGET_ARCH) ; diff --git a/src/system/glue/arch/arm/Jamfile b/src/system/glue/arch/arm/Jamfile index 3d54e9408b..4cc72a3a43 100644 --- a/src/system/glue/arch/arm/Jamfile +++ b/src/system/glue/arch/arm/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch arm ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup arm ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/glue/arch/m68k/Jamfile b/src/system/glue/arch/m68k/Jamfile index 7b1539dc47..9d74eb5f06 100644 --- a/src/system/glue/arch/m68k/Jamfile +++ b/src/system/glue/arch/m68k/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch m68k ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup m68k ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/glue/arch/mipsel/Jamfile b/src/system/glue/arch/mipsel/Jamfile index e40973ab13..e42aea477a 100644 --- a/src/system/glue/arch/mipsel/Jamfile +++ b/src/system/glue/arch/mipsel/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch mipsel ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup mipsel ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/glue/arch/ppc/Jamfile b/src/system/glue/arch/ppc/Jamfile index 997b3640df..c6ec452bf8 100644 --- a/src/system/glue/arch/ppc/Jamfile +++ b/src/system/glue/arch/ppc/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch ppc ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ppc ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/glue/arch/x86/Jamfile b/src/system/glue/arch/x86/Jamfile index 472233bda9..9ec00312ec 100644 --- a/src/system/glue/arch/x86/Jamfile +++ b/src/system/glue/arch/x86/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch x86 ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/glue/arch/x86_64/Jamfile b/src/system/glue/arch/x86_64/Jamfile index 4d43342366..554a21f36d 100644 --- a/src/system/glue/arch/x86_64/Jamfile +++ b/src/system/glue/arch/x86_64/Jamfile @@ -1,7 +1,11 @@ SubDir HAIKU_TOP src system glue arch x86_64 ; -KernelObjects - crti.S - crtn.S - ; - +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_64 ] { + on $(architectureObject) { + KernelObjects + crti.S + crtn.S + ; + } +} diff --git a/src/system/kernel/Jamfile b/src/system/kernel/Jamfile index b8ffbc5920..551317d75b 100644 --- a/src/system/kernel/Jamfile +++ b/src/system/kernel/Jamfile @@ -74,16 +74,19 @@ KernelMergeObject kernel_core.o : # Generate the header defining macros for C++ structure sizes. local kernelC++StructSizesHeader = [ FGristFiles kernel_c++_struct_sizes.h ] ; -TARGET_HDRS on $(kernelC++StructSizesHeader) - = [ on $(kernelC++StructSizesHeader) return $(TARGET_HDRS) ] +TARGET_HDRS_$(TARGET_PACKAGING_ARCH) on $(kernelC++StructSizesHeader) + = [ on $(kernelC++StructSizesHeader) + return $(TARGET_HDRS_$(TARGET_PACKAGING_ARCH)) ] $(TARGET_PRIVATE_KERNEL_HEADERS) ; CreateAsmStructOffsetsHeader $(kernelC++StructSizesHeader) : kernel_c++_structs.cpp ; # We need to specify the dependency on the generated syscalls files explicitly. Includes [ FGristFiles syscalls.cpp ] - : syscall_dispatcher.h syscall_table.h - syscall_numbers.h + : + syscall_dispatcher.h + syscall_table.h + syscall_numbers.h ; # TODO: fix or update binutils for ppc, in the meantime this should get things going. @@ -126,7 +129,7 @@ KernelLd kernel_$(TARGET_ARCH) : kernel_lib_posix_arch_$(TARGET_ARCH).o kernel_misc.o - $(HAIKU_KERNEL_LIBSUPC++) + $(TARGET_KERNEL_LIBSUPC++) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/kernel.ld : -Bdynamic -export-dynamic -dynamic-linker /foo/bar @@ -168,7 +171,7 @@ if $(HAIKU_ARCH) = x86_64 { kernel_lib_posix_arch_$(TARGET_ARCH).o kernel_misc.o - $(HAIKU_KERNEL_LIBSUPC++) + $(TARGET_KERNEL_LIBSUPC++) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/kernel.ld : -Bdynamic -shared -export-dynamic -dynamic-linker /foo/bar diff --git a/src/system/kernel/arch/x86/Jamfile b/src/system/kernel/arch/x86/Jamfile index d9ac20fe79..3941e18b5c 100644 --- a/src/system/kernel/arch/x86/Jamfile +++ b/src/system/kernel/arch/x86/Jamfile @@ -1,6 +1,7 @@ SubDir HAIKU_TOP src system kernel arch x86 ; -SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) system kernel ] ; +SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + system kernel ] ; # for syscall_numbers.h SubDirHdrs $(HAIKU_TOP) src add-ons kernel bus_managers ps2 ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel bus_managers acpi acpica include ; @@ -115,6 +116,6 @@ CreateAsmStructOffsetsHeader asm_offsets.h : asm_offsets.cpp ; # We need to specify the dependency on the generated syscalls file explicitly. Includes [ FGristFiles interrupts.S arch.S signals.cpp signals_asm.S ] - : syscall_numbers.h ; + : syscall_numbers.h ; Includes [ FGristFiles interrupts.S ] - : syscall_table.h ; + : syscall_table.h ; diff --git a/src/system/kernel/lib/arch/x86/Jamfile b/src/system/kernel/lib/arch/x86/Jamfile index 4f572bb40c..73678ad806 100644 --- a/src/system/kernel/lib/arch/x86/Jamfile +++ b/src/system/kernel/lib/arch/x86/Jamfile @@ -1,8 +1,8 @@ SubDir HAIKU_TOP src system kernel lib arch x86 ; # find the generated asm_offsets.h -SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) system kernel arch - $(TARGET_ARCH) ] ; +SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + system kernel arch $(TARGET_ARCH) ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; diff --git a/src/system/kernel/lib/arch/x86_64/Jamfile b/src/system/kernel/lib/arch/x86_64/Jamfile index 66f5fb864f..259708b5f4 100644 --- a/src/system/kernel/lib/arch/x86_64/Jamfile +++ b/src/system/kernel/lib/arch/x86_64/Jamfile @@ -1,8 +1,8 @@ SubDir HAIKU_TOP src system kernel lib arch x86_64 ; # find the generated asm_offsets.h -SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR) system kernel arch - $(TARGET_KERNEL_ARCH) ] ; +SubDirHdrs [ FDirName $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(TARGET_PACKAGING_ARCH)) + system kernel arch $(TARGET_KERNEL_ARCH) ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; diff --git a/src/system/libroot/Jamfile b/src/system/libroot/Jamfile index 011b082ae2..719da31815 100644 --- a/src/system/libroot/Jamfile +++ b/src/system/libroot/Jamfile @@ -1,97 +1,117 @@ SubDir HAIKU_TOP src system libroot ; UsePrivateHeaders libroot runtime_loader ; -UsePrivateSystemHeaders ; -UnarchiveObjects $(TARGET_GCC_LIBGCC_OBJECTS) : $(TARGET_GCC_LIBGCC) ; - # we need to link against libgcc.a objects and make - # it available to other applications as in BeOS +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local librootObjects = - os_main.o - os_arch_$(TARGET_ARCH).o + UsePrivateSystemHeaders ; - posix_arch_$(TARGET_ARCH).o - posix_crypt.o - posix_locale.o - posix_main.o - posix_pthread.o - posix_signal.o - posix_stdio.o - posix_gnu_arch_$(TARGET_ARCH).o - posix_gnu_ctype.o - posix_gnu_ext.o - posix_gnu_iconv.o - posix_gnu_libio.o - posix_gnu_locale.o - posix_gnu_misc.o - posix_gnu_regex.o - posix_gnu_stdio.o - posix_gnu_stdlib.o - posix_gnu_string.o - posix_gnu_wcsmbs.o - posix_stdlib.o - posix_string.o - posix_string_arch_$(TARGET_ARCH).o - posix_sys.o - posix_time.o - posix_unistd.o - posix_wchar.o -; + UnarchiveObjects $(HAIKU_GCC_LIBGCC_OBJECTS_$(architecture)) + : $(HAIKU_GCC_LIBGCC_$(architecture)) ; + # we need to link against libgcc.a objects and make + # it available to other applications as in BeOS -local librootDebugObjects = - posix_malloc_debug.o -; + local librootObjects = + os_main.o + os_arch_$(TARGET_ARCH).o -local librootNoDebugObjects = - posix_malloc.o -; + posix_arch_$(TARGET_ARCH).o + posix_crypt.o + posix_locale.o + posix_main.o + posix_pthread.o + posix_signal.o + posix_stdio.o + posix_gnu_arch_$(TARGET_ARCH).o + posix_gnu_ctype.o + posix_gnu_ext.o + posix_gnu_iconv.o + posix_gnu_libio.o + posix_gnu_locale.o + posix_gnu_misc.o + posix_gnu_regex.o + posix_gnu_stdio.o + posix_gnu_stdlib.o + posix_gnu_string.o + posix_gnu_wcsmbs.o + posix_stdlib.o + posix_string.o + posix_string_arch_$(TARGET_ARCH).o + posix_sys.o + posix_time.o + posix_unistd.o + posix_wchar.o + ; + librootObjects = $(librootObjects:G=$(architecture)) ; -DONT_LINK_AGAINST_LIBROOT on libroot.so = true ; -DONT_LINK_AGAINST_LIBROOT on libroot_debug.so = true ; + local librootDebugObjects = + posix_malloc_debug.o + ; + librootDebugObjects = $(librootDebugObjects:G=$(architecture)) ; -SetVersionScript libroot.so : libroot_versions ; -SetVersionScript libroot_debug.so : libroot_versions ; + local librootNoDebugObjects = + posix_malloc.o + ; + librootNoDebugObjects = $(librootNoDebugObjects:G=$(architecture)) ; -SharedLibrary libroot.so - : - libroot_init.c - : - $(TARGET_GCC_LIBGCC_OBJECTS) - $(librootObjects:G=nogrist) - $(librootNoDebugObjects:G=nogrist) - $(TARGET_STATIC_LIBSUPC++) -; + local libroot = [ MultiArchDefaultGristFiles libroot.so ] ; + local librootDebug = $(libroot:B=libroot_debug) ; -# Use the standard libroot.so soname, so when the debug version is pre-loaded -# it prevents the standard version to be loaded as well. -HAIKU_SONAME on libroot_debug.so = libroot.so ; + DONT_LINK_AGAINST_LIBROOT on $(libroot) = true ; + DONT_LINK_AGAINST_LIBROOT on $(librootDebug) = true ; -SharedLibrary libroot_debug.so - : - libroot_init.c - : - $(TARGET_GCC_LIBGCC_OBJECTS) - $(librootObjects:G=nogrist) - $(librootDebugObjects:G=nogrist) - $(TARGET_STATIC_LIBSUPC++) -; + SetVersionScript $(libroot) : libroot_versions ; + SetVersionScript $(librootDebug) : libroot_versions ; + + SharedLibrary $(libroot) + : + libroot_init.c + : + $(HAIKU_GCC_LIBGCC_OBJECTS_$(architecture)) + $(librootObjects) + $(librootNoDebugObjects) + $(HAIKU_STATIC_LIBSUPC++_$(architecture)) + ; + + # Use the standard libroot.so soname, so when the debug version is + # pre-loaded it prevents the standard version to be loaded as well. + HAIKU_SONAME on $(librootDebug) = libroot.so ; + + SharedLibrary $(librootDebug) + : + libroot_init.c + : + $(HAIKU_GCC_LIBGCC_OBJECTS_$(architecture)) + $(librootObjects) + $(librootDebugObjects) + $(HAIKU_STATIC_LIBSUPC++_$(architecture)) + ; -# Copy libroot.so and update the copy's revision section. We link everything -# against the original, but the copy will end up on the disk image (this way -# we avoid unnecessary dependencies). The copy will be located in a subdirectory. -if $(TARGET_PLATFORM) = haiku { - MakeLocate libroot.so - : [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ; - CopySetHaikuRevision libroot.so : libroot.so ; + # Copy libroot.so and update the copy's revision section. We link + # everything against the original, but the copy will end up on the disk + # image (this way we avoid unnecessary dependencies). The copy will be + # located in a subdirectory. + if $(TARGET_PLATFORM) = haiku { + local targetDir = [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) + revisioned ] ; + local revisionedLibroot = [ MultiArchDefaultGristFiles + libroot.so : revisioned ] ; + local revisionedLibrootDebug + = $(librootDebug:G=$(revisionedLibroot:G)) ; - MakeLocate libroot_debug.so - : [ FDirName $(TARGET_DEBUG_$(DEBUG)_LOCATE_TARGET) revisioned ] ; - CopySetHaikuRevision libroot_debug.so : libroot_debug.so ; + MakeLocate $(revisionedLibroot) : $(targetDir) ; + CopySetHaikuRevision $(revisionedLibroot) : $(libroot) ; + + MakeLocate $(revisionedLibrootDebug) : $(targetDir) ; + CopySetHaikuRevision $(revisionedLibrootDebug) : $(librootDebug) ; + } + } } - SubInclude HAIKU_TOP src system libroot add-ons ; SubInclude HAIKU_TOP src system libroot os ; SubInclude HAIKU_TOP src system libroot posix ; diff --git a/src/system/libroot/add-ons/icu/Jamfile b/src/system/libroot/add-ons/icu/Jamfile index 84d070ee2b..52dd179b00 100644 --- a/src/system/libroot/add-ons/icu/Jamfile +++ b/src/system/libroot/add-ons/icu/Jamfile @@ -6,31 +6,41 @@ UsePrivateHeaders [ FDirName libroot locale ] [ FDirName libroot time ] shared -; -UseBuildFeatureHeaders icu ; + ; -local sources = - ICUCategoryData.cpp - ICUCollateData.cpp - ICUCtypeData.cpp - ICULocaleBackend.cpp - ICULocaleconvData.cpp - ICUMessagesData.cpp - ICUMonetaryData.cpp - ICUNumericData.cpp - ICUThreadLocalStorageValue.cpp - ICUTimeConversion.cpp - ICUTimeData.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; - # Dependency needed to trigger downloading/unzipping the package before - # compiling the files. + UseBuildFeatureHeaders icu ; -SharedLibrary libroot-addon-icu.so - : $(sources) - : - libreferenceable.a $(TARGET_LIBSTDC++) - [ BuildFeatureAttribute icu : libraries ] -; + local sources = + ICUCategoryData.cpp + ICUCollateData.cpp + ICUCtypeData.cpp + ICULocaleBackend.cpp + ICULocaleconvData.cpp + ICUMessagesData.cpp + ICUMonetaryData.cpp + ICUNumericData.cpp + ICUThreadLocalStorageValue.cpp + ICUTimeConversion.cpp + ICUTimeData.cpp + ; + Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute icu : headers ] ; + # Dependency needed to trigger downloading/unzipping the package + # before compiling the files. + + local grist = [ MultiArchIfPrimary "" : <$(architecture)> ] ; + + SharedLibrary $(grist)libroot-addon-icu.so + : $(sources) + : + $(grist)libreferenceable.a $(TARGET_LIBSTDC++_$(architecture)) + [ BuildFeatureAttribute icu : libraries ] + ; + } +} diff --git a/src/system/libroot/os/Jamfile b/src/system/libroot/os/Jamfile index fcdb6e2cd5..ca427584b4 100644 --- a/src/system/libroot/os/Jamfile +++ b/src/system/libroot/os/Jamfile @@ -1,51 +1,64 @@ SubDir HAIKU_TOP src system libroot os ; -UsePrivateSystemHeaders ; UsePrivateHeaders kernel ; # for util/KMessage.h UsePrivateHeaders libroot runtime_loader shared ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) locks ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject os_main.o : - area.c - atomic.c - debug.c - driver_settings.cpp - extended_system_info.cpp - find_directory.cpp - fs_attr.cpp - fs_index.c - fs_info.c - fs_query.cpp - fs_volume.c - image.cpp - memory.cpp - parsedate.cpp - port.c - scheduler.c - sem.c - system_info.c - system_revision.c - team.c - thread.c - time.cpp - syscalls.S - wait_for_objects.cpp + UsePrivateSystemHeaders ; - # locks - init_once.cpp - mutex.cpp - recursive_lock.cpp - rw_lock.cpp + SEARCH_SOURCE += [ FDirName $(SUBDIR) locks ] ; - KMessage.cpp -; + MergeObject <$(architecture)>os_main.o : + area.c + atomic.c + debug.c + driver_settings.cpp + extended_system_info.cpp + find_directory.cpp + fs_attr.cpp + fs_index.c + fs_info.c + fs_query.cpp + fs_volume.c + image.cpp + memory.cpp + parsedate.cpp + port.c + scheduler.c + sem.c + system_info.c + system_revision.c + team.c + thread.c + time.cpp + syscalls.S + wait_for_objects.cpp -SEARCH on [ FGristFiles KMessage.cpp ] - = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ; + # locks + init_once.cpp + mutex.cpp + recursive_lock.cpp + rw_lock.cpp -# We need to specify the dependency on the generated syscalls file explicitly. -Depends [ FGristFiles syscalls.o ] : syscalls.S.inc ; + KMessage.cpp + ; -SubInclude HAIKU_TOP src system libroot os arch $(TARGET_ARCH) ; + SEARCH on [ FGristFiles KMessage.cpp ] + = [ FDirName $(HAIKU_TOP) src system kernel messaging ] ; + + # We need to specify the dependency on the generated syscalls file + # explicitly. + Depends [ FGristFiles syscalls.o ] + : syscalls.S.inc ; + } +} + +local arch ; +for arch in $(TARGET_ARCHS) { + HaikuSubInclude arch $(arch) ; +} diff --git a/src/system/libroot/os/arch/arm/Jamfile b/src/system/libroot/os/arch/arm/Jamfile index 2ebb171b6d..fc947e8d57 100644 --- a/src/system/libroot/os/arch/arm/Jamfile +++ b/src/system/libroot/os/arch/arm/Jamfile @@ -1,18 +1,25 @@ SubDir HAIKU_TOP src system libroot os arch arm ; -UsePrivateKernelHeaders ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup arm ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateKernelHeaders ; + UsePrivateSystemHeaders ; -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - system_time.c - stack_frame.c - thread.c - time.c - tls.c + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; - generic_system_time_nsecs.cpp -; + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + system_time.c + stack_frame.c + thread.c + time.c + tls.c + + generic_system_time_nsecs.cpp + ; + } +} diff --git a/src/system/libroot/os/arch/m68k/Jamfile b/src/system/libroot/os/arch/m68k/Jamfile index 55f5ac22b5..ada7c8ad60 100644 --- a/src/system/libroot/os/arch/m68k/Jamfile +++ b/src/system/libroot/os/arch/m68k/Jamfile @@ -1,22 +1,29 @@ SubDir HAIKU_TOP src system libroot os arch m68k ; -UsePrivateKernelHeaders ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup m68k ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateKernelHeaders ; + UsePrivateSystemHeaders ; -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - compatibility.c # only here until the places where those functions are used - # are fixed - stack_frame.c -# systeminfo.c - system_time.c - system_time_asm.S - thread.c - time.c - tls.c + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; - generic_system_time_nsecs.cpp -; + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + compatibility.c # only here until the places where those functions + # are used are fixed + stack_frame.c +# systeminfo.c + system_time.c + system_time_asm.S + thread.c + time.c + tls.c + + generic_system_time_nsecs.cpp + ; + } +} diff --git a/src/system/libroot/os/arch/mipsel/Jamfile b/src/system/libroot/os/arch/mipsel/Jamfile index 3b80e62b8a..cf12717576 100644 --- a/src/system/libroot/os/arch/mipsel/Jamfile +++ b/src/system/libroot/os/arch/mipsel/Jamfile @@ -1,24 +1,31 @@ SubDir HAIKU_TOP src system libroot os arch mipsel ; -UsePrivateKernelHeaders ; - # TODO: Replace by "UsePrivateHeaders libroot" after resolving the TODO in - # time.c! -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup mipsel ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateKernelHeaders ; + # TODO: Replace by "UsePrivateHeaders libroot" after resolving the + # TODO in time.c! + UsePrivateSystemHeaders ; -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - compatibility.c # only here until the places where those functions are used - # are fixed - stack_frame.c -# systeminfo.c - system_time.c - system_time_asm.S - thread.c - time.c - tls.c + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; - generic_system_time_nsecs.cpp -; + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + compatibility.c # only here until the places where those functions + # are used are fixed + stack_frame.c + # systeminfo.c + system_time.c + system_time_asm.S + thread.c + time.c + tls.c + + generic_system_time_nsecs.cpp + ; + } +} \ No newline at end of file diff --git a/src/system/libroot/os/arch/ppc/Jamfile b/src/system/libroot/os/arch/ppc/Jamfile index 3a293e7e1b..6daef94fe6 100644 --- a/src/system/libroot/os/arch/ppc/Jamfile +++ b/src/system/libroot/os/arch/ppc/Jamfile @@ -1,24 +1,31 @@ SubDir HAIKU_TOP src system libroot os arch ppc ; -UsePrivateKernelHeaders ; - # TODO: Replace by "UsePrivateHeaders libroot" after resolving the TODO in - # time.c! -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ppc ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateKernelHeaders ; + # TODO: Replace by "UsePrivateHeaders libroot" after resolving the + # TODO in time.c! + UsePrivateSystemHeaders ; -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - compatibility.c # only here until the places where those functions are used - # are fixed - stack_frame.c -# systeminfo.c - system_time.c - system_time_asm.S - thread.c - time.c - tls.c + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; - generic_system_time_nsecs.cpp -; + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + compatibility.c # only here until the places where those functions + # are used are fixed + stack_frame.c +# systeminfo.c + system_time.c + system_time_asm.S + thread.c + time.c + tls.c + + generic_system_time_nsecs.cpp + ; + } +} diff --git a/src/system/libroot/os/arch/x86/Jamfile b/src/system/libroot/os/arch/x86/Jamfile index 786a76eeda..e04e18a5d6 100644 --- a/src/system/libroot/os/arch/x86/Jamfile +++ b/src/system/libroot/os/arch/x86/Jamfile @@ -1,26 +1,33 @@ SubDir HAIKU_TOP src system libroot os arch x86 ; -UsePrivateKernelHeaders ; - # TODO: Replace by "UsePrivateHeaders libroot" after resolving the TODO in - # time.c! -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local compatibilitySources ; -if $(HAIKU_GCC_VERSION[1]) = 2 { - compatibilitySources = - compatibility.c - ; + UsePrivateKernelHeaders ; + # TODO: Replace by "UsePrivateHeaders libroot" after resolving the + # TODO in time.c! + UsePrivateSystemHeaders ; + + local compatibilitySources ; + if $(TARGET_GCC_VERSION_$(architecture)[1]) = 2 { + compatibilitySources = + compatibility.c + ; + } + + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + get_stack_frame.S + system_info.c + system_time_asm.S + thread.c + time.cpp + tls.c + + $(compatibilitySources) + ; + } } - -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - get_stack_frame.S - system_info.c - system_time_asm.S - thread.c - time.cpp - tls.c - - $(compatibilitySources) -; diff --git a/src/system/libroot/os/arch/x86_64/Jamfile b/src/system/libroot/os/arch/x86_64/Jamfile index 72a195ed84..2cda1c64f7 100644 --- a/src/system/libroot/os/arch/x86_64/Jamfile +++ b/src/system/libroot/os/arch/x86_64/Jamfile @@ -1,17 +1,24 @@ SubDir HAIKU_TOP src system libroot os arch x86_64 ; -UsePrivateKernelHeaders ; - # TODO: Replace by "UsePrivateHeaders libroot" after resolving the TODO in - # time.c! -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_64 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject os_arch_$(TARGET_ARCH).o : - atomic.S - byteorder.S - get_stack_frame.S - system_info.cpp - system_time_asm.S - thread.cpp - time.cpp - tls.cpp -; + UsePrivateKernelHeaders ; + # TODO: Replace by "UsePrivateHeaders libroot" after resolving the + # TODO in time.c! + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>os_arch_$(TARGET_ARCH).o : + atomic.S + byteorder.S + get_stack_frame.S + system_info.cpp + system_time_asm.S + thread.cpp + time.cpp + tls.cpp + ; + } +} diff --git a/src/system/libroot/posix/Jamfile b/src/system/libroot/posix/Jamfile index b6b720ada8..ac6f34c3d3 100644 --- a/src/system/libroot/posix/Jamfile +++ b/src/system/libroot/posix/Jamfile @@ -1,39 +1,50 @@ SubDir HAIKU_TOP src system libroot posix ; UsePrivateHeaders app shared [ FDirName syslog_daemon ] ; -UsePrivateSystemHeaders ; UsePrivateHeaders kernel ; # For util/KMessage.h UsePrivateHeaders libroot runtime_loader shared ; -if $(HAIKU_MULTIUSER_QUERY) = 1 { - PWD_BACKEND = pwd_query.c ; -} else { - PWD_BACKEND = pwd.cpp grp.cpp shadow.cpp user_group_common.cpp ; -} -MergeObject posix_main.o : - assert.c - dlfcn.c - dirent.c - errno.c - fcntl.cpp - fnmatch.c - fts.c - ftw.c - glob.c - inttypes.c - libgen.cpp - nftw.c - poll.c - $(PWD_BACKEND) - scheduler.cpp - semaphore.cpp - syslog.cpp - termios.c - utime.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SubInclude HAIKU_TOP src system libroot posix arch $(TARGET_ARCH) ; + UsePrivateSystemHeaders ; + + if $(HAIKU_MULTIUSER_QUERY) = 1 { + PWD_BACKEND = pwd_query.c ; + } else { + PWD_BACKEND = pwd.cpp grp.cpp shadow.cpp user_group_common.cpp ; + } + MergeObject <$(architecture)>posix_main.o : + assert.c + dlfcn.c + dirent.c + errno.c + fcntl.cpp + fnmatch.c + fts.c + ftw.c + glob.c + inttypes.c + libgen.cpp + nftw.c + poll.c + $(PWD_BACKEND) + scheduler.cpp + semaphore.cpp + syslog.cpp + termios.c + utime.c + ; + } +} + +local arch ; +for arch in $(TARGET_ARCHS) { + HaikuSubInclude arch $(arch) ; +} SubInclude HAIKU_TOP src system libroot posix crypt ; SubInclude HAIKU_TOP src system libroot posix locale ; diff --git a/src/system/libroot/posix/arch/arm/Jamfile b/src/system/libroot/posix/arch/arm/Jamfile index 8eb8fd60b2..e18f4b43bc 100644 --- a/src/system/libroot/posix/arch/arm/Jamfile +++ b/src/system/libroot/posix/arch/arm/Jamfile @@ -1,19 +1,25 @@ SubDir HAIKU_TOP src system libroot posix arch arm ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup arm ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -UsePrivateHeaders [ FDirName system arch $(TARGET_ARCH) ] ; + UsePrivateHeaders [ FDirName system arch $(TARGET_ARCH) ] ; -local genericSources = - setjmp_save_sigs.c -; + local genericSources = + setjmp_save_sigs.c + ; -MergeObject posix_arch_$(TARGET_ARCH).o : - fenv.c - sigsetjmp.S - siglongjmp.S + MergeObject <$(architecture)>posix_arch_$(TARGET_ARCH).o : + fenv.c + sigsetjmp.S + siglongjmp.S - $(genericSources) -; + $(genericSources) + ; -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/arch/m68k/Jamfile b/src/system/libroot/posix/arch/m68k/Jamfile index a44eb7d91a..20965bf5a1 100644 --- a/src/system/libroot/posix/arch/m68k/Jamfile +++ b/src/system/libroot/posix/arch/m68k/Jamfile @@ -1,18 +1,25 @@ SubDir HAIKU_TOP src system libroot posix arch m68k ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup m68k ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local genericSources = - setjmp_save_sigs.c - longjmp_return.c -; + UsePrivateSystemHeaders ; -MergeObject posix_arch_$(TARGET_ARCH).o : - sigsetjmp.S - siglongjmp.S + local genericSources = + setjmp_save_sigs.c + longjmp_return.c + ; - $(genericSources) -; + MergeObject <$(architecture)>posix_arch_$(TARGET_ARCH).o : + sigsetjmp.S + siglongjmp.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + $(genericSources) + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/arch/mipsel/Jamfile b/src/system/libroot/posix/arch/mipsel/Jamfile index 26a2ef6f8e..e477b84dca 100644 --- a/src/system/libroot/posix/arch/mipsel/Jamfile +++ b/src/system/libroot/posix/arch/mipsel/Jamfile @@ -1,18 +1,25 @@ SubDir HAIKU_TOP src system libroot posix arch mipsel ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup mipsel ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local genericSources = - setjmp_save_sigs.c - longjmp_return.c -; + UsePrivateSystemHeaders ; -MergeObject posix_arch_$(TARGET_ARCH).o : - sigsetjmp.S - siglongjmp.S + local genericSources = + setjmp_save_sigs.c + longjmp_return.c + ; - $(genericSources) -; + MergeObject posix_arch_$(TARGET_ARCH).o : + sigsetjmp.S + siglongjmp.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + $(genericSources) + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/arch/ppc/Jamfile b/src/system/libroot/posix/arch/ppc/Jamfile index fe574538a3..706a73b2a6 100644 --- a/src/system/libroot/posix/arch/ppc/Jamfile +++ b/src/system/libroot/posix/arch/ppc/Jamfile @@ -1,17 +1,24 @@ SubDir HAIKU_TOP src system libroot posix arch ppc ; -local genericSources = - setjmp_save_sigs.c - longjmp_return.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ppc ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_arch_$(TARGET_ARCH).o : - fenv.c - sigsetjmp.S - siglongjmp.S + local genericSources = + setjmp_save_sigs.c + longjmp_return.c + ; - $(genericSources) -; + MergeObject <$(architecture)>posix_arch_$(TARGET_ARCH).o : + fenv.c + sigsetjmp.S + siglongjmp.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + $(genericSources) + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/arch/x86/Jamfile b/src/system/libroot/posix/arch/x86/Jamfile index 052dd5357b..063d500d5c 100644 --- a/src/system/libroot/posix/arch/x86/Jamfile +++ b/src/system/libroot/posix/arch/x86/Jamfile @@ -1,19 +1,26 @@ SubDir HAIKU_TOP src system libroot posix arch x86 ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local genericSources = - setjmp_save_sigs.c - longjmp_return.c -; + UsePrivateSystemHeaders ; -MergeObject posix_arch_$(TARGET_ARCH).o : - fenv.c - sigsetjmp.S - siglongjmp.S + local genericSources = + setjmp_save_sigs.c + longjmp_return.c + ; - $(genericSources) -; + MergeObject <$(architecture)>posix_arch_$(TARGET_ARCH).o : + fenv.c + sigsetjmp.S + siglongjmp.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + $(genericSources) + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/arch/x86_64/Jamfile b/src/system/libroot/posix/arch/x86_64/Jamfile index 5891f1b3e5..d09c71590e 100644 --- a/src/system/libroot/posix/arch/x86_64/Jamfile +++ b/src/system/libroot/posix/arch/x86_64/Jamfile @@ -1,19 +1,26 @@ SubDir HAIKU_TOP src system libroot posix arch x86_64 ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_64 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -local genericSources = - setjmp_save_sigs.c - longjmp_return.c -; + UsePrivateSystemHeaders ; -MergeObject posix_arch_$(TARGET_ARCH).o : - fenv.c - sigsetjmp.S - siglongjmp.S + local genericSources = + setjmp_save_sigs.c + longjmp_return.c + ; - $(genericSources) -; + MergeObject <$(architecture)>posix_arch_$(TARGET_ARCH).o : + fenv.c + sigsetjmp.S + siglongjmp.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + $(genericSources) + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + } +} diff --git a/src/system/libroot/posix/crypt/Jamfile b/src/system/libroot/posix/crypt/Jamfile index a90b956f5b..db3bb04ebf 100644 --- a/src/system/libroot/posix/crypt/Jamfile +++ b/src/system/libroot/posix/crypt/Jamfile @@ -1,10 +1,18 @@ SubDir HAIKU_TOP src system libroot posix crypt ; -# filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_crypt.o : - crypt.c - crypt_util.c -; + # filter warnings we don't want here + TARGET_WARNING_CCFLAGS_$(architecture) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(architecture)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; + + MergeObject <$(architecture)>posix_crypt.o : + crypt.c + crypt_util.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/Jamfile b/src/system/libroot/posix/glibc/Jamfile index a3c6035226..a72a42619a 100644 --- a/src/system/libroot/posix/glibc/Jamfile +++ b/src/system/libroot/posix/glibc/Jamfile @@ -1,11 +1,15 @@ SubDir HAIKU_TOP src system libroot posix glibc ; -SubInclude HAIKU_TOP src system libroot posix glibc arch ; +local arch ; +for arch in $(TARGET_ARCHS) { + HaikuSubInclude arch $(arch) ; +} + SubInclude HAIKU_TOP src system libroot posix glibc ctype ; SubInclude HAIKU_TOP src system libroot posix glibc extensions ; SubInclude HAIKU_TOP src system libroot posix glibc iconv ; -SubInclude HAIKU_TOP src system libroot posix glibc locale ; SubInclude HAIKU_TOP src system libroot posix glibc libio ; +SubInclude HAIKU_TOP src system libroot posix glibc locale ; SubInclude HAIKU_TOP src system libroot posix glibc misc ; SubInclude HAIKU_TOP src system libroot posix glibc regex ; SubInclude HAIKU_TOP src system libroot posix glibc stdio-common ; diff --git a/src/system/libroot/posix/glibc/arch/Jamfile b/src/system/libroot/posix/glibc/arch/Jamfile deleted file mode 100644 index 51d70c76e2..0000000000 --- a/src/system/libroot/posix/glibc/arch/Jamfile +++ /dev/null @@ -1,4 +0,0 @@ -SubDir HAIKU_TOP src system libroot posix glibc arch ; - -SubInclude HAIKU_TOP src system libroot posix glibc arch $(TARGET_ARCH) ; - diff --git a/src/system/libroot/posix/glibc/arch/arm/Jamfile b/src/system/libroot/posix/glibc/arch/arm/Jamfile index 034ad45bf8..394d8eda0b 100644 --- a/src/system/libroot/posix/glibc/arch/arm/Jamfile +++ b/src/system/libroot/posix/glibc/arch/arm/Jamfile @@ -71,21 +71,30 @@ local genericSources = e_rem_pio2f.c k_rem_pio2f.c memrchr.c -; + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o : - $(genericSources) -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup arm ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_others.o : - e_sqrt.c - e_sqrtf.c -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o : + $(genericSources) + ; -MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : : - posix_gnu_arch_$(TARGET_ARCH)_generic.o - posix_gnu_arch_$(TARGET_ARCH)_others.o -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_others.o : + e_sqrt.c + e_sqrtf.c + ; -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch generic ] ; + MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o + : : + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_others.o + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch + generic ] ; + } +} diff --git a/src/system/libroot/posix/glibc/arch/m68k/Jamfile b/src/system/libroot/posix/glibc/arch/m68k/Jamfile index 4686573da6..84fb984216 100644 --- a/src/system/libroot/posix/glibc/arch/m68k/Jamfile +++ b/src/system/libroot/posix/glibc/arch/m68k/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src system libroot posix glibc arch m68k ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc arch $(TARGET_ARCH) ; +SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc arch m68k ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch $(TARGET_ARCH) ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; @@ -126,44 +126,53 @@ local genericSources = # no asm for m68k in glibc strlen.c w_sqrt.c w_sqrtf.c # w_sqrtl.c -; + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o : - $(genericSources) -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup m68k ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_other.o : + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o : + $(genericSources) + ; - add_n.S - addmul_1.S - doasin.c - feholdexcpt.c fraiseexcpt.c fesetenv.c fesetround.c ftestexcept.c -# ldbl2mpn.c - lshift.S rshift.S - mul_1.S -# strlen.S - sub_n.S - submul_1.S + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o : - e_acos.c e_acosf.c # e_acosl.c - e_asin.c e_asinf.c # e_asinl.c - e_sqrt.c e_sqrtf.c # e_sqrtl.c -# s_fdim.c s_fdimf.c # s_fdiml.S -# s_fabs.S s_fabsf.S # s_fabsl.S - # s_fpclassifyl.c -# s_isnan.c s_isnanf.S - s_nearbyint.c s_nearbyintf.c # s_nearbyintl.c - s_remquo.c s_remquof.c # s_remquol.c - s_rint.c s_rintf.c # s_rintl.c - s_scalbln.c s_scalblnf.c # s_scalblnl.c -# t_sqrt.c -# w_sqrt.c w_sqrtf.c # w_sqrtl.c -; - -MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : : - posix_gnu_arch_$(TARGET_ARCH)_generic.o - posix_gnu_arch_$(TARGET_ARCH)_other.o -; + add_n.S + addmul_1.S + doasin.c + feholdexcpt.c fraiseexcpt.c fesetenv.c fesetround.c ftestexcept.c +# ldbl2mpn.c + lshift.S rshift.S + mul_1.S +# strlen.S + sub_n.S + submul_1.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch generic ] ; + e_acos.c e_acosf.c # e_acosl.c + e_asin.c e_asinf.c # e_asinl.c + e_sqrt.c e_sqrtf.c # e_sqrtl.c +# s_fdim.c s_fdimf.c # s_fdiml.S +# s_fabs.S s_fabsf.S # s_fabsl.S + # s_fpclassifyl.c +# s_isnan.c s_isnanf.S + s_nearbyint.c s_nearbyintf.c # s_nearbyintl.c + s_remquo.c s_remquof.c # s_remquol.c + s_rint.c s_rintf.c # s_rintl.c + s_scalbln.c s_scalblnf.c # s_scalblnl.c +# t_sqrt.c +# w_sqrt.c w_sqrtf.c # w_sqrtl.c + ; + + MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o + : : + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch + generic ] ; + } +} diff --git a/src/system/libroot/posix/glibc/arch/ppc/Jamfile b/src/system/libroot/posix/glibc/arch/ppc/Jamfile index c28f099975..149ab03ab6 100644 --- a/src/system/libroot/posix/glibc/arch/ppc/Jamfile +++ b/src/system/libroot/posix/glibc/arch/ppc/Jamfile @@ -1,7 +1,6 @@ SubDir HAIKU_TOP src system libroot posix glibc arch ppc ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; +SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch ppc ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ; @@ -119,38 +118,47 @@ local genericSources = w_scalb.c w_scalbf.c # w_scalbl.c w_sinh.c w_sinhf.c # w_sinhl.c w_tgamma.c w_tgammaf.c # w_tgammal.c -; + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o : - $(genericSources) -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ppc ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_other.o : - add_n.S - addmul_1.S - feholdexcpt.c fraiseexcpt.c fesetenv.c fesetround.c ftestexcept.c - ldbl2mpn.c - lshift.S rshift.S - mul_1.S - sub_n.S - submul_1.S + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o : + $(genericSources) + ; - e_sqrt.c e_sqrtf.c # e_sqrtl.c - s_copysign.S s_copysignf.S # s_copysignl.S - s_fabs.S s_fabsf.S # s_fabsl.S - s_fdim.c s_fdimf.c # s_fdiml.S - s_fmax.S s_fmaxf.S # s_fmaxl.S - s_fmin.S s_fminf.S # s_fminl.S - s_isnan.c s_isnanf.S - s_rint.c s_rintf.c # s_rintl.c - t_sqrt.c - w_sqrt.c w_sqrtf.c # w_sqrtl.c -; - -MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : : - posix_gnu_arch_$(TARGET_ARCH)_generic.o - posix_gnu_arch_$(TARGET_ARCH)_other.o -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o : + add_n.S + addmul_1.S + feholdexcpt.c fraiseexcpt.c fesetenv.c fesetround.c ftestexcept.c + ldbl2mpn.c + lshift.S rshift.S + mul_1.S + sub_n.S + submul_1.S -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch generic ] ; + e_sqrt.c e_sqrtf.c # e_sqrtl.c + s_copysign.S s_copysignf.S # s_copysignl.S + s_fabs.S s_fabsf.S # s_fabsl.S + s_fdim.c s_fdimf.c # s_fdiml.S + s_fmax.S s_fmaxf.S # s_fmaxl.S + s_fmin.S s_fminf.S # s_fminl.S + s_isnan.c s_isnanf.S + s_rint.c s_rintf.c # s_rintl.c + t_sqrt.c + w_sqrt.c w_sqrtf.c # w_sqrtl.c + ; + + MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o + : : + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o + ; + + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch + generic ] ; + } +} diff --git a/src/system/libroot/posix/glibc/arch/x86/Jamfile b/src/system/libroot/posix/glibc/arch/x86/Jamfile index 4035668300..e6e022f19b 100644 --- a/src/system/libroot/posix/glibc/arch/x86/Jamfile +++ b/src/system/libroot/posix/glibc/arch/x86/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src system libroot posix glibc arch x86 ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch $(TARGET_ARCH) ; +SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch x86 ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; @@ -98,94 +98,103 @@ local genericSources = w_sinh.c w_sinhf.c w_sinhl.c w_sqrt.c w_sqrtf.c w_sqrtl.c w_tgamma.c w_tgammaf.c w_tgammal.c -; + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_other.o : - add_n.S - addmul_1.S - fegetround.c - fesetround.c - fraiseexcpt.c - ldbl2mpn.c - mpa.c mpatan.c mpatan2.c mptan.c - - mplog.c - mul_1.S - lshift.S rshift.S - sub_n.S - submul_1.S -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o : + add_n.S + addmul_1.S + fegetround.c + fesetround.c + fraiseexcpt.c + ldbl2mpn.c + mpa.c mpatan.c mpatan2.c mptan.c + + mplog.c + mul_1.S + lshift.S rshift.S + sub_n.S + submul_1.S + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_e.o : - e_acos.S e_acosf.S e_acosl.c - e_acosh.S e_acoshf.S e_acoshl.S - e_asin.S e_asinf.S - e_atan2.S e_atan2f.S e_atan2l.c - e_atanh.S e_atanhf.S e_atanhl.S - e_exp.S e_expf.S e_expl.c - e_exp2.S e_exp2f.S e_exp2l.S - e_exp10.S e_exp10f.S e_exp10l.S - e_fmod.S e_fmodf.S e_fmodl.c - e_hypot.S e_hypotf.S - e_log.S e_logf.S e_logl.S - e_log2.S e_log2f.S e_log2l.S - e_log10.S e_log10f.S e_log10l.S - e_pow.S e_powf.S e_powl.S - e_remainder.S e_remainderf.S e_remainderl.S - e_scalb.S e_scalbf.S e_scalbl.S - e_sqrt.S e_sqrtf.S e_sqrtl.c -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o : + e_acos.S e_acosf.S e_acosl.c + e_acosh.S e_acoshf.S e_acoshl.S + e_asin.S e_asinf.S + e_atan2.S e_atan2f.S e_atan2l.c + e_atanh.S e_atanhf.S e_atanhl.S + e_exp.S e_expf.S e_expl.c + e_exp2.S e_exp2f.S e_exp2l.S + e_exp10.S e_exp10f.S e_exp10l.S + e_fmod.S e_fmodf.S e_fmodl.c + e_hypot.S e_hypotf.S + e_log.S e_logf.S e_logl.S + e_log2.S e_log2f.S e_log2l.S + e_log10.S e_log10f.S e_log10l.S + e_pow.S e_powf.S e_powl.S + e_remainder.S e_remainderf.S e_remainderl.S + e_scalb.S e_scalbf.S e_scalbl.S + e_sqrt.S e_sqrtf.S e_sqrtl.c + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_s.o : - s_asinh.S s_asinhf.S s_asinhl.S - s_atan.S s_atanf.S s_atanl.c - s_cbrt.S s_cbrtf.S s_cbrtl.S - s_ceil.S s_ceilf.S s_ceill.S - s_cexp.S s_cexpf.S s_cexpl.S - s_copysign.S s_copysignf.S s_copysignl.S - s_cos.S s_cosf.S s_cosl.S - s_expm1.S s_expm1f.S s_expm1l.S - s_fdim.S s_fdimf.S s_fdiml.S - s_fabs.S s_fabsf.S s_fabsl.S - s_finite.S s_finitef.S s_finitel.S - s_floor.S s_floorf.S s_floorl.S - s_fma.S s_fmaf.S s_fmal.S - s_fmax.S s_fmaxf.S s_fmaxl.S - s_fmin.S s_fminf.S s_fminl.S - s_fpclassifyl.c - s_frexp.S s_frexpf.S s_frexpl.S - s_ilogb.S s_ilogbf.S - s_isinfl.c - s_isnanl.c - s_llrint.S s_llrintf.S s_llrintl.S - s_log1p.S s_log1pf.S s_log1pl.S - s_logb.S s_logbf.S s_logbl.c - s_lrint.S s_lrintf.S s_lrintl.S - s_nearbyint.S s_nearbyintf.S s_nearbyintl.S - s_nextafterl.c - s_nexttoward.c s_nexttowardf.c - s_remquo.S s_remquof.S s_remquol.S - s_rint.S s_rintf.S s_rintl.c - s_scalbln.c s_scalblnf.c s_scalblnl.c - s_scalbn.S s_scalbnf.S s_scalbnl.S - s_significand.S s_significandf.S - s_sin.S s_sinf.S s_sinl.S - s_sincos.S s_sincosf.S s_sincosl.S - s_tan.S s_tanf.S s_tanl.S - s_trunc.S s_truncf.S s_truncl.S -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o : + s_asinh.S s_asinhf.S s_asinhl.S + s_atan.S s_atanf.S s_atanl.c + s_cbrt.S s_cbrtf.S s_cbrtl.S + s_ceil.S s_ceilf.S s_ceill.S + s_cexp.S s_cexpf.S s_cexpl.S + s_copysign.S s_copysignf.S s_copysignl.S + s_cos.S s_cosf.S s_cosl.S + s_expm1.S s_expm1f.S s_expm1l.S + s_fdim.S s_fdimf.S s_fdiml.S + s_fabs.S s_fabsf.S s_fabsl.S + s_finite.S s_finitef.S s_finitel.S + s_floor.S s_floorf.S s_floorl.S + s_fma.S s_fmaf.S s_fmal.S + s_fmax.S s_fmaxf.S s_fmaxl.S + s_fmin.S s_fminf.S s_fminl.S + s_fpclassifyl.c + s_frexp.S s_frexpf.S s_frexpl.S + s_ilogb.S s_ilogbf.S + s_isinfl.c + s_isnanl.c + s_llrint.S s_llrintf.S s_llrintl.S + s_log1p.S s_log1pf.S s_log1pl.S + s_logb.S s_logbf.S s_logbl.c + s_lrint.S s_lrintf.S s_lrintl.S + s_nearbyint.S s_nearbyintf.S s_nearbyintl.S + s_nextafterl.c + s_nexttoward.c s_nexttowardf.c + s_remquo.S s_remquof.S s_remquol.S + s_rint.S s_rintf.S s_rintl.c + s_scalbln.c s_scalblnf.c s_scalblnl.c + s_scalbn.S s_scalbnf.S s_scalbnl.S + s_significand.S s_significandf.S + s_sin.S s_sinf.S s_sinl.S + s_sincos.S s_sincosf.S s_sincosl.S + s_tan.S s_tanf.S s_tanl.S + s_trunc.S s_truncf.S s_truncl.S + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o : - $(genericSources) -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o : + $(genericSources) + ; -MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : : - posix_gnu_arch_$(TARGET_ARCH)_e.o - posix_gnu_arch_$(TARGET_ARCH)_generic.o - posix_gnu_arch_$(TARGET_ARCH)_other.o - posix_gnu_arch_$(TARGET_ARCH)_s.o -; + MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o + : : + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o + ; -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch generic ] ; + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch + generic ] ; + } +} diff --git a/src/system/libroot/posix/glibc/arch/x86_64/Jamfile b/src/system/libroot/posix/glibc/arch/x86_64/Jamfile index 8be5c91044..7bc592f2bc 100644 --- a/src/system/libroot/posix/glibc/arch/x86_64/Jamfile +++ b/src/system/libroot/posix/glibc/arch/x86_64/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src system libroot posix glibc arch x86_64 ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch $(TARGET_ARCH) ; +SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch x86_64 ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; @@ -82,55 +82,64 @@ local genericSources = w_remainderf.c w_remainderl.c w_scalb.c w_scalbf.c w_scalbl.c w_sinh.c w_sinhf.c w_sinhl.c w_sqrt.c w_sqrtf.c w_sqrtl.c w_tgamma.c w_tgammaf.c w_tgammal.c -; + ; + +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_64 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o : + e_acosl.c e_atan2l.c e_exp2l.S e_expl.c e_fmodl.S e_log10l.S + e_log2l.S e_logl.S e_powl.S e_remainderl.S e_rem_pio2l.c e_scalbl.S + e_sqrt.c e_sqrtf.c e_sqrtl.c + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_e.o : - e_acosl.c e_atan2l.c e_exp2l.S e_expl.c e_fmodl.S e_log10l.S e_log2l.S - e_logl.S e_powl.S e_remainderl.S e_rem_pio2l.c e_scalbl.S e_sqrt.c - e_sqrtf.c e_sqrtl.c -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_k.o : + k_cosl.c k_rem_pio2l.c k_sinl.c k_tanl.c + ; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o : + s_atanl.c s_ceill.S s_copysignf.S s_copysignl.S s_copysign.S + s_cosl.S s_expm1l.S s_fabs.c s_fabsf.c s_fabsl.S s_fdiml.S + s_finitel.S s_floorl.S s_fmaxf.S s_fmaxl.S s_fmax.S s_fminf.S + s_fminl.S s_fmin.S s_fpclassifyl.c s_ilogbl.S s_isinfl.c s_isnanl.c + s_llrintf.S s_llrintl.S s_llrint.S s_log1pl.S s_logbl.c s_lrintf.S + s_lrintl.S s_lrint.S s_nearbyintl.S s_nextafterl.c s_nexttoward.c + s_nexttowardf.c s_rintl.c s_scalbnl.S s_significandl.c s_sincosl.S + s_sincos.S s_sinl.S s_tanl.S s_truncl.S + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_k.o : - k_cosl.c k_rem_pio2l.c k_sinl.c k_tanl.c -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o : + add_n.S + addmul_1.S + fegetround.c + fesetenv.c + fesetround.c + ldbl2mpn.c -MergeObject posix_gnu_arch_$(TARGET_ARCH)_s.o : - s_atanl.c s_ceill.S s_copysignf.S s_copysignl.S s_copysign.S s_cosl.S - s_expm1l.S s_fabs.c s_fabsf.c s_fabsl.S s_fdiml.S s_finitel.S s_floorl.S - s_fmaxf.S s_fmaxl.S s_fmax.S s_fminf.S s_fminl.S s_fmin.S s_fpclassifyl.c - s_ilogbl.S s_isinfl.c s_isnanl.c s_llrintf.S s_llrintl.S s_llrint.S - s_log1pl.S s_logbl.c s_lrintf.S s_lrintl.S s_lrint.S s_nearbyintl.S - s_nextafterl.c s_nexttoward.c s_nexttowardf.c s_rintl.c s_scalbnl.S - s_significandl.c s_sincosl.S s_sincos.S s_sinl.S s_tanl.S s_truncl.S -; + mul_1.S + lshift.S rshift.S + sub_n.S + submul_1.S + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_other.o : - add_n.S - addmul_1.S - fegetround.c - fesetenv.c - fesetround.c - ldbl2mpn.c - - mul_1.S - lshift.S rshift.S - sub_n.S - submul_1.S -; + MergeObject <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o : + $(genericSources) + ; -MergeObject posix_gnu_arch_$(TARGET_ARCH)_generic.o : - $(genericSources) -; + MergeObjectFromObjects <$(architecture)>posix_gnu_arch_$(TARGET_ARCH).o + : : + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_e.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_k.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_s.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_other.o + <$(architecture)>posix_gnu_arch_$(TARGET_ARCH)_generic.o + ; -MergeObjectFromObjects posix_gnu_arch_$(TARGET_ARCH).o : : - posix_gnu_arch_$(TARGET_ARCH)_e.o - posix_gnu_arch_$(TARGET_ARCH)_k.o - posix_gnu_arch_$(TARGET_ARCH)_s.o - posix_gnu_arch_$(TARGET_ARCH)_other.o - posix_gnu_arch_$(TARGET_ARCH)_generic.o -; - -SEARCH on [ FGristFiles $(genericSources) ] - = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch generic ] ; + SEARCH on [ FGristFiles $(genericSources) ] + = [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch + generic ] ; + } +} diff --git a/src/system/libroot/posix/glibc/ctype/Jamfile b/src/system/libroot/posix/glibc/ctype/Jamfile index ff8c702a3e..08fc8cf886 100644 --- a/src/system/libroot/posix/glibc/ctype/Jamfile +++ b/src/system/libroot/posix/glibc/ctype/Jamfile @@ -1,13 +1,22 @@ SubDir HAIKU_TOP src system libroot posix glibc ctype ; -SubDirSysHdrs $(SUBDIR) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(SUBDIR) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + MergeObject <$(architecture)>posix_gnu_ctype.o : + ctype-info.c + ; + } +} -MergeObject posix_gnu_ctype.o : - ctype-info.c -; diff --git a/src/system/libroot/posix/glibc/extensions/Jamfile b/src/system/libroot/posix/glibc/extensions/Jamfile index 25fdbd567f..507c0ade40 100644 --- a/src/system/libroot/posix/glibc/extensions/Jamfile +++ b/src/system/libroot/posix/glibc/extensions/Jamfile @@ -1,17 +1,25 @@ SubDir HAIKU_TOP src system libroot posix glibc extensions ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_gnu_ext.o : - getopt.c - getopt1.c - getopt_init.c + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - obstack.c -; + MergeObject <$(architecture)>posix_gnu_ext.o : + getopt.c + getopt1.c + getopt_init.c + + obstack.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/iconv/Jamfile b/src/system/libroot/posix/glibc/iconv/Jamfile index 94cd974953..83e6a1e0ba 100644 --- a/src/system/libroot/posix/glibc/iconv/Jamfile +++ b/src/system/libroot/posix/glibc/iconv/Jamfile @@ -1,21 +1,28 @@ SubDir HAIKU_TOP src system libroot posix glibc iconv ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ctype ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - -UsePrivateHeaders libroot ; - - SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -MergeObject posix_gnu_iconv.o : - gconv_builtin.c - gconv_simple.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ctype ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + UsePrivateHeaders libroot ; + + MergeObject <$(architecture)>posix_gnu_iconv.o : + gconv_builtin.c + gconv_simple.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/libio/Jamfile b/src/system/libroot/posix/glibc/libio/Jamfile index 4e6f0dc425..82eea64eae 100644 --- a/src/system/libroot/posix/glibc/libio/Jamfile +++ b/src/system/libroot/posix/glibc/libio/Jamfile @@ -1,128 +1,135 @@ SubDir HAIKU_TOP src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdio-common ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -#SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc string ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; - -UsePrivateHeaders libroot ; - # For now, all wide character functions are disabled, # obprintf() is also disabled, because we don't have # obstack functionality SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -MergeObject posix_gnu_libio.o : - __fsetlocking.c - clearerr.c - clearerr_u.c - fcloseall.c - feof.c - feof_u.c - ferror.c - ferror_u.c - fileno.c - filedoalloc.c - fileops.c - flockfile.c - fmemopen.c - fputc.c - fputc_u.c - freopen.c - fseek.c - fseeko.c - ftello.c - fwide.c - genops.c - getc.c - getc_u.c - getchar.c - getchar_u.c - iofclose.c - iofdopen.c - iofflush.c - iofgetpos.c - iofgets.c - iofgets_u.c - iofopen.c - iofopncook.c - iofputs.c - iofputs_u.c - iofread.c - iofread_u.c - iofsetpos.c - ioftell.c - iofwrite.c - iofwrite_u.c - iofwide.c - iogetdelim.c - iogetline.c - iogets.c - iopadn.c - iopopen.c - ioputs.c - ioseekoff.c - ioseekpos.c - iosetbuffer.c - iosetvbuf.c - ioungetc.c - iovdprintf.c - iovsprintf.c - iovsscanf.c - memstream.c -# obprintf.c - pclose.c - peekc.c - putc.c - putc_u.c - putchar.c - putchar_u.c - rewind.c - setbuf.c - setlinebuf.c - stdfiles.c - stdio.c - strops.c - vasprintf.c - vscanf.c - vsnprintf.c +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; - # wide character + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdio-common ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; - fputwc.c - fputwc_u.c - fwprintf.c - fwscanf.c - getwc.c - getwc_u.c - getwchar.c - iofgetws.c - iofputws.c - iofputws_u.c - iogetwline.c - ioungetwc.c - iovswscanf.c - iowpadn.c - putwc.c - putwc_u.c - putwchar.c - putwchar_u.c - swprintf.c - swscanf.c - vswprintf.c - vwprintf.c - vwscanf.c - wfiledoalloc.c - wfileops.c - wgenops.c - wprintf.c - wscanf.c - wstrops.c -; + UsePrivateHeaders libroot ; + + MergeObject <$(architecture)>posix_gnu_libio.o : + __fsetlocking.c + clearerr.c + clearerr_u.c + fcloseall.c + feof.c + feof_u.c + ferror.c + ferror_u.c + fileno.c + filedoalloc.c + fileops.c + flockfile.c + fmemopen.c + fputc.c + fputc_u.c + freopen.c + fseek.c + fseeko.c + ftello.c + fwide.c + genops.c + getc.c + getc_u.c + getchar.c + getchar_u.c + iofclose.c + iofdopen.c + iofflush.c + iofgetpos.c + iofgets.c + iofgets_u.c + iofopen.c + iofopncook.c + iofputs.c + iofputs_u.c + iofread.c + iofread_u.c + iofsetpos.c + ioftell.c + iofwrite.c + iofwrite_u.c + iofwide.c + iogetdelim.c + iogetline.c + iogets.c + iopadn.c + iopopen.c + ioputs.c + ioseekoff.c + ioseekpos.c + iosetbuffer.c + iosetvbuf.c + ioungetc.c + iovdprintf.c + iovsprintf.c + iovsscanf.c + memstream.c +# obprintf.c + pclose.c + peekc.c + putc.c + putc_u.c + putchar.c + putchar_u.c + rewind.c + setbuf.c + setlinebuf.c + stdfiles.c + stdio.c + strops.c + vasprintf.c + vscanf.c + vsnprintf.c + + # wide character + + fputwc.c + fputwc_u.c + fwprintf.c + fwscanf.c + getwc.c + getwc_u.c + getwchar.c + iofgetws.c + iofputws.c + iofputws_u.c + iogetwline.c + ioungetwc.c + iovswscanf.c + iowpadn.c + putwc.c + putwc_u.c + putwchar.c + putwchar_u.c + swprintf.c + swscanf.c + vswprintf.c + vwprintf.c + vwscanf.c + wfiledoalloc.c + wfileops.c + wgenops.c + wprintf.c + wscanf.c + wstrops.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/locale/Jamfile b/src/system/libroot/posix/glibc/locale/Jamfile index 918a1465ca..b3ba468564 100644 --- a/src/system/libroot/posix/glibc/locale/Jamfile +++ b/src/system/libroot/posix/glibc/locale/Jamfile @@ -1,27 +1,35 @@ SubDir HAIKU_TOP src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO -DLOCALEDIR=\'\"/share/locale\"\' ; -MergeObject posix_gnu_locale.o : - C-collate.c - C-ctype.c - C-messages.c - C-monetary.c - C-numeric.c - C-time.c - C_name.c - coll-lookup.c - lc-collate.c - lc-ctype.c - lc-messages.c - lc-monetary.c - lc-numeric.c - xlocale.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + MergeObject <$(architecture)>posix_gnu_locale.o : + C-collate.c + C-ctype.c + C-messages.c + C-monetary.c + C-numeric.c + C-time.c + C_name.c + coll-lookup.c + lc-collate.c + lc-ctype.c + lc-messages.c + lc-monetary.c + lc-numeric.c + xlocale.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/misc/Jamfile b/src/system/libroot/posix/glibc/misc/Jamfile index 937e16416e..1c9152bffc 100644 --- a/src/system/libroot/posix/glibc/misc/Jamfile +++ b/src/system/libroot/posix/glibc/misc/Jamfile @@ -1,26 +1,32 @@ SubDir HAIKU_TOP src system libroot posix glibc misc ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -#SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc wcsmbs ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc misc ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - -UsePrivateHeaders libroot ; - - SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -MergeObject posix_gnu_misc.o : - hsearch.c - hsearch_r.c - insremque.c - lsearch.c - tsearch.c - efgcvt.c - efgcvt_r.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc misc ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + UsePrivateHeaders libroot ; + + MergeObject <$(architecture)>posix_gnu_misc.o : + hsearch.c + hsearch_r.c + insremque.c + lsearch.c + tsearch.c + efgcvt.c + efgcvt_r.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/regex/Jamfile b/src/system/libroot/posix/glibc/regex/Jamfile index b1e1b0d56d..d5bb81e1da 100644 --- a/src/system/libroot/posix/glibc/regex/Jamfile +++ b/src/system/libroot/posix/glibc/regex/Jamfile @@ -3,7 +3,13 @@ SubDir HAIKU_TOP src system libroot posix glibc regex ; SubDirHdrs $(HAIKU_TOP) headers ; SubDirCcFlags -D_REGEX_RE_COMP -D__USE_GNU -DHAVE_STDBOOL_H ; -KernelMergeObject posix_gnu_regex.o : - regex.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + MergeObject <$(architecture)>posix_gnu_regex.o : + regex.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/stdio-common/Jamfile b/src/system/libroot/posix/glibc/stdio-common/Jamfile index bea6ede166..3491915a8b 100644 --- a/src/system/libroot/posix/glibc/stdio-common/Jamfile +++ b/src/system/libroot/posix/glibc/stdio-common/Jamfile @@ -2,52 +2,59 @@ SubDir HAIKU_TOP src system libroot posix glibc stdio-common ; SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdio-common ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -UsePrivateHeaders libroot ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdio-common ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + UsePrivateHeaders libroot ; -MergeObject posix_gnu_stdio.o : #_common.o : - _itoa.c - _itowa.c - asprintf.c -# dprintf.c - fprintf.c - fscanf.c - getline.c - getw.c - itoa-digits.c - itoa-udigits.c - itowa-digits.c - perror.c - printf-prs.c - printf.c - printf_fp.c - printf_fphex.c - printf_size.c - putw.c - reg-printf.c - scanf.c - snprintf.c - sprintf.c - sscanf.c - tempnam.c - tempname.c - tmpfile.c - tmpnam.c - tmpnam_r.c - vfprintf.c -# vfprintf_stub.c -# vfscanf_stub.c - vfscanf.c - vfwprintf.c - vfwscanf.c - vprintf.c -; + MergeObject <$(architecture)>posix_gnu_stdio.o : + _itoa.c + _itowa.c + asprintf.c +# dprintf.c + fprintf.c + fscanf.c + getline.c + getw.c + itoa-digits.c + itoa-udigits.c + itowa-digits.c + perror.c + printf-prs.c + printf.c + printf_fp.c + printf_fphex.c + printf_size.c + putw.c + reg-printf.c + scanf.c + snprintf.c + sprintf.c + sscanf.c + tempnam.c + tempname.c + tmpfile.c + tmpnam.c + tmpnam_r.c + vfprintf.c +# vfprintf_stub.c +# vfscanf_stub.c + vfscanf.c + vfwprintf.c + vfwscanf.c + vprintf.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/stdlib/Jamfile b/src/system/libroot/posix/glibc/stdlib/Jamfile index fe91aa1e6d..c4173ec9aa 100644 --- a/src/system/libroot/posix/glibc/stdlib/Jamfile +++ b/src/system/libroot/posix/glibc/stdlib/Jamfile @@ -1,40 +1,49 @@ SubDir HAIKU_TOP src system libroot posix glibc stdlib ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - -UsePrivateHeaders libroot ; - SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -MergeObject posix_gnu_stdlib.o : - drand48.c - drand48_r.c - drand48-iter.c - erand48.c - erand48_r.c - fpioconst.c - jrand48.c - jrand48_r.c - inlines.c - lcong48.c - lcong48_r.c - lrand48.c - lrand48_r.c - mrand48.c - mrand48_r.c - nrand48.c - nrand48_r.c - random_r.c - seed48.c - seed48_r.c - srand48.c - srand48_r.c - strtod.c - strtold.c - strtof.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + UsePrivateHeaders libroot ; + + MergeObject <$(architecture)>posix_gnu_stdlib.o : + drand48.c + drand48_r.c + drand48-iter.c + erand48.c + erand48_r.c + fpioconst.c + jrand48.c + jrand48_r.c + inlines.c + lcong48.c + lcong48_r.c + lrand48.c + lrand48_r.c + mrand48.c + mrand48_r.c + nrand48.c + nrand48_r.c + random_r.c + seed48.c + seed48_r.c + srand48.c + srand48_r.c + strtod.c + strtold.c + strtof.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/string/Jamfile b/src/system/libroot/posix/glibc/string/Jamfile index fecd7105aa..f79671cdad 100644 --- a/src/system/libroot/posix/glibc/string/Jamfile +++ b/src/system/libroot/posix/glibc/string/Jamfile @@ -1,11 +1,18 @@ SubDir HAIKU_TOP src system libroot posix glibc string ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -#SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -#SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_gnu_string.o : - swab.c -; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + + MergeObject <$(architecture)>posix_gnu_string.o : + swab.c + ; + } +} diff --git a/src/system/libroot/posix/glibc/wcsmbs/Jamfile b/src/system/libroot/posix/glibc/wcsmbs/Jamfile index 66ce9e3004..5380f28cb6 100644 --- a/src/system/libroot/posix/glibc/wcsmbs/Jamfile +++ b/src/system/libroot/posix/glibc/wcsmbs/Jamfile @@ -1,29 +1,36 @@ SubDir HAIKU_TOP src system libroot posix glibc wcsmbs ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch - $(TARGET_ARCH) ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc wcsmbs ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ctype ; -SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; - -UsePrivateHeaders libroot ; - - SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; -MergeObject posix_gnu_wcsmbs.o : - wcsmbsload.c - wcstod.c - wcstof.c - wcstol.c - wcstoll.c - wcstold.c - wcstoul.c - wcstoull.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + $(TARGET_ARCH) ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch + generic ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc wcsmbs ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc iconv ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc locale ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ctype ; + SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ; + + UsePrivateHeaders libroot ; + + MergeObject <$(architecture)>posix_gnu_wcsmbs.o : + wcsmbsload.c + wcstod.c + wcstof.c + wcstol.c + wcstoll.c + wcstold.c + wcstoul.c + wcstoull.c + ; + } +} diff --git a/src/system/libroot/posix/locale/Jamfile b/src/system/libroot/posix/locale/Jamfile index 1d96bba252..d2f9aefa56 100644 --- a/src/system/libroot/posix/locale/Jamfile +++ b/src/system/libroot/posix/locale/Jamfile @@ -4,15 +4,22 @@ UsePrivateHeaders [ FDirName libroot ] [ FDirName libroot locale ] [ FDirName libroot time ] -; + ; -MergeObject posix_locale.o : - ctype.cpp - LocaleBackend.cpp - LocaleData.cpp - LocaleDataBridge.cpp - localeconv.cpp - nl_langinfo.cpp - setlocale.cpp - wctype.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + MergeObject <$(architecture)>posix_locale.o : + ctype.cpp + LocaleBackend.cpp + LocaleData.cpp + LocaleDataBridge.cpp + localeconv.cpp + nl_langinfo.cpp + setlocale.cpp + wctype.cpp + ; + } +} diff --git a/src/system/libroot/posix/malloc/Jamfile b/src/system/libroot/posix/malloc/Jamfile index 423cda5ffe..3cb65cc7a0 100644 --- a/src/system/libroot/posix/malloc/Jamfile +++ b/src/system/libroot/posix/malloc/Jamfile @@ -1,13 +1,21 @@ SubDir HAIKU_TOP src system libroot posix malloc ; -UsePrivateSystemHeaders ; UsePrivateHeaders libroot ; -MergeObject posix_malloc.o : - arch-specific.cpp - heap.cpp - processheap.cpp - superblock.cpp - threadheap.cpp - wrapper.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_malloc.o : + arch-specific.cpp + heap.cpp + processheap.cpp + superblock.cpp + threadheap.cpp + wrapper.cpp + ; + } +} diff --git a/src/system/libroot/posix/malloc_debug/Jamfile b/src/system/libroot/posix/malloc_debug/Jamfile index ee657fce2e..ce2d68a298 100644 --- a/src/system/libroot/posix/malloc_debug/Jamfile +++ b/src/system/libroot/posix/malloc_debug/Jamfile @@ -1,9 +1,17 @@ SubDir HAIKU_TOP src system libroot posix malloc_debug ; -UsePrivateSystemHeaders ; UsePrivateHeaders libroot shared ; -MergeObject posix_malloc_debug.o : - #guarded_heap.cpp - heap.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_malloc_debug.o : + #guarded_heap.cpp + heap.cpp + ; + } +} diff --git a/src/system/libroot/posix/pthread/Jamfile b/src/system/libroot/posix/pthread/Jamfile index bc7a36d0f2..1968a8e8ee 100644 --- a/src/system/libroot/posix/pthread/Jamfile +++ b/src/system/libroot/posix/pthread/Jamfile @@ -1,23 +1,30 @@ SubDir HAIKU_TOP src system libroot posix pthread ; -UsePrivateSystemHeaders ; UsePrivateHeaders kernel ; # for util/DoublyLinkedList.h UsePrivateHeaders libroot shared ; -MergeObject posix_pthread.o : - pthread.cpp - pthread_atfork.c - pthread_attr.c - pthread_cancel.cpp - pthread_cleanup.cpp - pthread_cond.cpp - pthread_condattr.c - pthread_key.cpp - pthread_mutex.cpp - pthread_mutexattr.c - pthread_once.cpp - pthread_rwlock.cpp - pthread_spinlock.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_pthread.o : + pthread.cpp + pthread_atfork.c + pthread_attr.c + pthread_cancel.cpp + pthread_cleanup.cpp + pthread_cond.cpp + pthread_condattr.c + pthread_key.cpp + pthread_mutex.cpp + pthread_mutexattr.c + pthread_once.cpp + pthread_rwlock.cpp + pthread_spinlock.c + ; + } +} diff --git a/src/system/libroot/posix/signal/Jamfile b/src/system/libroot/posix/signal/Jamfile index 11d753a235..8b4b1eae7a 100644 --- a/src/system/libroot/posix/signal/Jamfile +++ b/src/system/libroot/posix/signal/Jamfile @@ -1,33 +1,41 @@ SubDir HAIKU_TOP src system libroot posix signal ; -UsePrivateSystemHeaders ; UsePrivateHeaders libroot shared ; -MergeObject posix_signal.o : - kill.c - killpg.cpp - psiginfo.cpp - psignal.cpp - raise.c - send_signal.c - set_signal_mask.cpp - set_signal_stack.c - sigaction.cpp - sigaltstack.c - sighold.cpp - sigignore.cpp - siginterrupt.cpp - signal.cpp - signal_limits.cpp - sigpause.cpp - sigpending.cpp - sigqueue.cpp - sigrelse.cpp - sigset.cpp - sigset_accessors.cpp - sigsuspend.cpp - sigtimedwait.cpp - sigwait.cpp - sigwaitinfo.cpp - strsignal.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_signal.o : + kill.c + killpg.cpp + psiginfo.cpp + psignal.cpp + raise.c + send_signal.c + set_signal_mask.cpp + set_signal_stack.c + sigaction.cpp + sigaltstack.c + sighold.cpp + sigignore.cpp + siginterrupt.cpp + signal.cpp + signal_limits.cpp + sigpause.cpp + sigpending.cpp + sigqueue.cpp + sigrelse.cpp + sigset.cpp + sigset_accessors.cpp + sigsuspend.cpp + sigtimedwait.cpp + sigwait.cpp + sigwaitinfo.cpp + strsignal.cpp + ; + } +} diff --git a/src/system/libroot/posix/stdio/Jamfile b/src/system/libroot/posix/stdio/Jamfile index c43f38af02..61627d8e11 100644 --- a/src/system/libroot/posix/stdio/Jamfile +++ b/src/system/libroot/posix/stdio/Jamfile @@ -1,57 +1,20 @@ SubDir HAIKU_TOP src system libroot posix stdio ; -UsePrivateSystemHeaders ; UsePrivateHeaders libroot shared ; -MergeObject posix_stdio.o : - __freading.cpp - _fseek.c - fpurge.cpp - remove.c - rename.c -# The other files are superseded by the glibc libio/stdio stuff -# <$(SOURCE_GRIST)>fclose.c -# <$(SOURCE_GRIST)>feof.c -# <$(SOURCE_GRIST)>fflush.c -# <$(SOURCE_GRIST)>fgetc.c -# <$(SOURCE_GRIST)>fgetln.c -# <$(SOURCE_GRIST)>fgets.c -# <$(SOURCE_GRIST)>findfp.c -# <$(SOURCE_GRIST)>flags.c -# <$(SOURCE_GRIST)>flockfile.c -# <$(SOURCE_GRIST)>fopen.c -# <$(SOURCE_GRIST)>fprintf.c -# <$(SOURCE_GRIST)>fputc.c -# <$(SOURCE_GRIST)>fputs.c -# <$(SOURCE_GRIST)>fread.c -# <$(SOURCE_GRIST)>fseek.c -# <$(SOURCE_GRIST)>fwrite.c -# <$(SOURCE_GRIST)>fvwrite.c -# <$(SOURCE_GRIST)>fwalk.c -# <$(SOURCE_GRIST)>getc.c -# <$(SOURCE_GRIST)>getchar.c -# <$(SOURCE_GRIST)>gets.c -# <$(SOURCE_GRIST)>getw.c -# <$(SOURCE_GRIST)>makebuf.c -# <$(SOURCE_GRIST)>printf.c -# <$(SOURCE_GRIST)>putc.c -# <$(SOURCE_GRIST)>putchar.c -# <$(SOURCE_GRIST)>puts.c -# <$(SOURCE_GRIST)>putw.c -# <$(SOURCE_GRIST)>refill.c -# <$(SOURCE_GRIST)>rewind.c -# <$(SOURCE_GRIST)>rget.c -# <$(SOURCE_GRIST)>scanf.c -# <$(SOURCE_GRIST)>snprintf.c -# <$(SOURCE_GRIST)>sscanf.c -# <$(SOURCE_GRIST)>sprintf.c -# <$(SOURCE_GRIST)>stdio.c -# <$(SOURCE_GRIST)>ungetc.c -# <$(SOURCE_GRIST)>vfprintf.c -# <$(SOURCE_GRIST)>vfscanf.c -# <$(SOURCE_GRIST)>vscanf.c -# <$(SOURCE_GRIST)>vsnprintf.c -# <$(SOURCE_GRIST)>vsprintf.c -# <$(SOURCE_GRIST)>wbuf.c -# <$(SOURCE_GRIST)>wsetup.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_stdio.o : + __freading.cpp + _fseek.c + fpurge.cpp + remove.c + rename.c + ; + } +} diff --git a/src/system/libroot/posix/stdlib/Jamfile b/src/system/libroot/posix/stdlib/Jamfile index f473c95501..0f49b64a2a 100644 --- a/src/system/libroot/posix/stdlib/Jamfile +++ b/src/system/libroot/posix/stdlib/Jamfile @@ -2,30 +2,38 @@ SubDir HAIKU_TOP src system libroot posix stdlib ; UsePrivateHeaders drivers libroot runtime_loader shared ; UsePrivateHeaders kernel ; # for -UsePrivateSystemHeaders ; -MergeObject posix_stdlib.o : - abs.c - atfork.c - atof.c - atoi.c - bsearch.c - div.c - env.cpp - exit.cpp - getsubopt.cpp - heapsort.c - merge.c - mktemp.c - pty.cpp - qsort.c - radixsort.c - rand.c - random.c - realpath.cpp - strfmon.c - strtol.c - strtoll.c - strtoul.c - strtoull.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_stdlib.o : + abs.c + atfork.c + atof.c + atoi.c + bsearch.c + div.c + env.cpp + exit.cpp + getsubopt.cpp + heapsort.c + merge.c + mktemp.c + pty.cpp + qsort.c + radixsort.c + rand.c + random.c + realpath.cpp + strfmon.c + strtol.c + strtoll.c + strtoul.c + strtoull.c + ; + } +} diff --git a/src/system/libroot/posix/string/Jamfile b/src/system/libroot/posix/string/Jamfile index 68eed17fe0..a8d53bc097 100644 --- a/src/system/libroot/posix/string/Jamfile +++ b/src/system/libroot/posix/string/Jamfile @@ -1,47 +1,57 @@ SubDir HAIKU_TOP src system libroot posix string ; -UsePrivateHeaders - [ FDirName libroot ] - [ FDirName libroot locale ] -; +UsePrivateHeaders + [ FDirName libroot ] + [ FDirName libroot locale ] + ; -MergeObject posix_string.o : - bcmp.c - bcopy.c - bzero.c - ffs.cpp - memccpy.c - memchr.c - memcmp.c - memmove.c - stpcpy.c - strcasecmp.c - strcasestr.c - strcat.c - strchr.c - strchrnul.c - strcmp.c - strcoll.cpp - strcpy.c - strcspn.c - strdup.c - strerror.c - strlcat.c - strlcpy.c - strlen.cpp - strlwr.c - strncat.c - strncmp.c - strncpy.cpp - strndup.cpp - strnlen.cpp - strpbrk.c - strrchr.c - strspn.c - strstr.c - strtok.c - strupr.c - strxfrm.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -HaikuSubInclude arch $(TARGET_ARCH) ; + MergeObject <$(architecture)>posix_string.o : + bcmp.c + bcopy.c + bzero.c + ffs.cpp + memccpy.c + memchr.c + memcmp.c + memmove.c + stpcpy.c + strcasecmp.c + strcasestr.c + strcat.c + strchr.c + strchrnul.c + strcmp.c + strcoll.cpp + strcpy.c + strcspn.c + strdup.c + strerror.c + strlcat.c + strlcpy.c + strlen.cpp + strlwr.c + strncat.c + strncmp.c + strncpy.cpp + strndup.cpp + strnlen.cpp + strpbrk.c + strrchr.c + strspn.c + strstr.c + strtok.c + strupr.c + strxfrm.cpp + ; + } +} + +local arch ; +for arch in $(TARGET_ARCHS) { + HaikuSubInclude arch $(arch) ; +} diff --git a/src/system/libroot/posix/string/arch/arm/Jamfile b/src/system/libroot/posix/string/arch/arm/Jamfile index 7146ba3e65..6fe7dfbf1b 100644 --- a/src/system/libroot/posix/string/arch/arm/Jamfile +++ b/src/system/libroot/posix/string/arch/arm/Jamfile @@ -1,10 +1,17 @@ SubDir HAIKU_TOP src system libroot posix string arch arm ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup arm ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateSystemHeaders ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - arch_string.S - memset.c -; + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + arch_string.S + memset.c + ; + } +} diff --git a/src/system/libroot/posix/string/arch/m68k/Jamfile b/src/system/libroot/posix/string/arch/m68k/Jamfile index 6642b95fc7..3791d8bb06 100644 --- a/src/system/libroot/posix/string/arch/m68k/Jamfile +++ b/src/system/libroot/posix/string/arch/m68k/Jamfile @@ -1,10 +1,17 @@ SubDir HAIKU_TOP src system libroot posix string arch m68k ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup m68k ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateSystemHeaders ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - arch_string.S - memset.c -; + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + arch_string.S + memset.c + ; + } +} diff --git a/src/system/libroot/posix/string/arch/mipsel/Jamfile b/src/system/libroot/posix/string/arch/mipsel/Jamfile index 275150660a..3e70f84ecd 100644 --- a/src/system/libroot/posix/string/arch/mipsel/Jamfile +++ b/src/system/libroot/posix/string/arch/mipsel/Jamfile @@ -1,10 +1,17 @@ SubDir HAIKU_TOP src system libroot posix string arch mipsel ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup mipsel ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateSystemHeaders ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - memcpy.c - memset.c -; + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + memcpy.c + memset.c + ; + } +} diff --git a/src/system/libroot/posix/string/arch/ppc/Jamfile b/src/system/libroot/posix/string/arch/ppc/Jamfile index 920c691c46..5f054aa971 100644 --- a/src/system/libroot/posix/string/arch/ppc/Jamfile +++ b/src/system/libroot/posix/string/arch/ppc/Jamfile @@ -1,10 +1,17 @@ SubDir HAIKU_TOP src system libroot posix string arch ppc ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ppc ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + UsePrivateSystemHeaders ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - memcpy.c - memset.c -; + SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ; + + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + memcpy.c + memset.c + ; + } +} diff --git a/src/system/libroot/posix/string/arch/x86/Jamfile b/src/system/libroot/posix/string/arch/x86/Jamfile index bbaee0d9d0..edd827a2d8 100644 --- a/src/system/libroot/posix/string/arch/x86/Jamfile +++ b/src/system/libroot/posix/string/arch/x86/Jamfile @@ -1,8 +1,14 @@ SubDir HAIKU_TOP src system libroot posix string arch x86 ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86 x86_gcc2 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - arch_string.S -; + UsePrivateSystemHeaders ; + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + arch_string.S + ; + } +} diff --git a/src/system/libroot/posix/string/arch/x86_64/Jamfile b/src/system/libroot/posix/string/arch/x86_64/Jamfile index 1c3ac217c0..6d843894d4 100644 --- a/src/system/libroot/posix/string/arch/x86_64/Jamfile +++ b/src/system/libroot/posix/string/arch/x86_64/Jamfile @@ -1,8 +1,14 @@ SubDir HAIKU_TOP src system libroot posix string arch x86_64 ; -UsePrivateSystemHeaders ; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup x86_64 ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; -MergeObject posix_string_arch_$(TARGET_ARCH).o : - arch_string.S -; + UsePrivateSystemHeaders ; + MergeObject <$(architecture)>posix_string_arch_$(TARGET_ARCH).o : + arch_string.S + ; + } +} diff --git a/src/system/libroot/posix/sys/Jamfile b/src/system/libroot/posix/sys/Jamfile index 3f439cbffd..db2e5ed62d 100644 --- a/src/system/libroot/posix/sys/Jamfile +++ b/src/system/libroot/posix/sys/Jamfile @@ -1,29 +1,37 @@ SubDir HAIKU_TOP src system libroot posix sys ; UsePrivateHeaders libroot shared ; -UsePrivateSystemHeaders ; -MergeObject posix_sys.o : - chmod.c - flock.c - ftime.c - ftok.c - getrusage.c - gettimeofday.c - itimer.cpp - mkdir.c - mkfifo.c - mman.cpp - rlimit.c - select.c - stat.c - statvfs.c - times.cpp - uio.c - umask.c - uname.c - utimes.c - wait.cpp - xsi_msg_queue.cpp - xsi_sem.cpp -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_sys.o : + chmod.c + flock.c + ftime.c + ftok.c + getrusage.c + gettimeofday.c + itimer.cpp + mkdir.c + mkfifo.c + mman.cpp + rlimit.c + select.c + stat.c + statvfs.c + times.cpp + uio.c + umask.c + uname.c + utimes.c + wait.cpp + xsi_msg_queue.cpp + xsi_sem.cpp + ; + } +} diff --git a/src/system/libroot/posix/time/Jamfile b/src/system/libroot/posix/time/Jamfile index e79876fe4a..d3af02339b 100644 --- a/src/system/libroot/posix/time/Jamfile +++ b/src/system/libroot/posix/time/Jamfile @@ -9,26 +9,34 @@ UsePrivateHeaders [ FDirName libroot locale ] [ FDirName libroot time ] shared -; -UsePrivateSystemHeaders ; + ; -MergeObject posix_time.o : - asctime.cpp - clock.cpp - clock_support.cpp - ctime.c - difftime.c - localtime_fading_out.c - localtime.cpp - nanosleep.c - stime.c - strftime.c - strptime.c - timelocal.cpp - time.c - timer_support.cpp - wcsftime.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_time.o : + asctime.cpp + clock.cpp + clock_support.cpp + ctime.c + difftime.c + localtime_fading_out.c + localtime.cpp + nanosleep.c + stime.c + strftime.c + strptime.c + timelocal.cpp + time.c + timer_support.cpp + wcsftime.c + ; + } +} # Explanations of flags: # diff --git a/src/system/libroot/posix/unistd/Jamfile b/src/system/libroot/posix/unistd/Jamfile index 91e85ee168..e9f6d2adbb 100644 --- a/src/system/libroot/posix/unistd/Jamfile +++ b/src/system/libroot/posix/unistd/Jamfile @@ -1,42 +1,50 @@ SubDir HAIKU_TOP src system libroot posix unistd ; -UsePrivateSystemHeaders ; UsePrivateHeaders libroot runtime_loader shared ; -MergeObject posix_unistd.o : - access.c - alarm.c - chown.c - chroot.cpp - close.c - conf.cpp - directory.c - dup.c - exec.cpp - _exit.c - fork.c - getlogin.c - getpagesize.c - hostname.cpp - ioctl.c - link.c - lockf.cpp - lseek.c - mknod.c - mount.c - pause.c - pipe.c - process.c - read.c - sbrk.c - sleep.c - sync.c - system.cpp - terminal.c - truncate.c - ttyname.c - ualarm.c - usergroup.cpp - usleep.c - write.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + UsePrivateSystemHeaders ; + + MergeObject <$(architecture)>posix_unistd.o : + access.c + alarm.c + chown.c + chroot.cpp + close.c + conf.cpp + directory.c + dup.c + exec.cpp + _exit.c + fork.c + getlogin.c + getpagesize.c + hostname.cpp + ioctl.c + link.c + lockf.cpp + lseek.c + mknod.c + mount.c + pause.c + pipe.c + process.c + read.c + sbrk.c + sleep.c + sync.c + system.cpp + terminal.c + truncate.c + ttyname.c + ualarm.c + usergroup.cpp + usleep.c + write.c + ; + } +} diff --git a/src/system/libroot/posix/wchar/Jamfile b/src/system/libroot/posix/wchar/Jamfile index 6b77b86d78..ce58b99b40 100644 --- a/src/system/libroot/posix/wchar/Jamfile +++ b/src/system/libroot/posix/wchar/Jamfile @@ -5,52 +5,59 @@ UsePrivateHeaders [ FDirName libroot locale ] ; -MergeObject posix_wchar.o : - btowc.c - mblen.c - mbrlen.c - mbrtowc.cpp - mbsinit.c - mbsrtowcs.cpp - mbstowcs.c - mbtowc.c - wcpcpy.c - wcpncpy.c - wcrtomb.cpp - wcscasecmp.c - wcscat.c - wcschr.c - wcschrnul.c - wcscmp.c - wcscoll.cpp - wcscpy.c - wcscspn.c - wcsdup.c -# wcsftime.cpp - wcslcat.c - wcslcpy.c - wcslen.c - wcsncasecmp.c - wcsncat.c - wcsncmp.c - wcsncpy.c - wcsnlen.c - wcspbrk.c - wcsrchr.c - wcsrtombs.cpp - wcsspn.c - wcsstr.c - wcstok.c - wcstombs.c - wcswidth.c - wcsxfrm.cpp - wctob.c - wctomb.c - wcwidth.c - wmemchr.c - wmemcmp.c - wmemcpy.c - wmemmove.c - wmempcpy.c - wmemset.c -; +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + MergeObject <$(architecture)>posix_wchar.o : + btowc.c + mblen.c + mbrlen.c + mbrtowc.cpp + mbsinit.c + mbsrtowcs.cpp + mbstowcs.c + mbtowc.c + wcpcpy.c + wcpncpy.c + wcrtomb.cpp + wcscasecmp.c + wcscat.c + wcschr.c + wcschrnul.c + wcscmp.c + wcscoll.cpp + wcscpy.c + wcscspn.c + wcsdup.c +# wcsftime.cpp + wcslcat.c + wcslcpy.c + wcslen.c + wcsncasecmp.c + wcsncat.c + wcsncmp.c + wcsncpy.c + wcsnlen.c + wcspbrk.c + wcsrchr.c + wcsrtombs.cpp + wcsspn.c + wcsstr.c + wcstok.c + wcstombs.c + wcswidth.c + wcsxfrm.cpp + wctob.c + wctomb.c + wcwidth.c + wmemchr.c + wmemcmp.c + wmemcpy.c + wmemmove.c + wmempcpy.c + wmemset.c + ; + } +} diff --git a/src/system/runtime_loader/Jamfile b/src/system/runtime_loader/Jamfile index 11bc81122e..06d9b56532 100644 --- a/src/system/runtime_loader/Jamfile +++ b/src/system/runtime_loader/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders libroot runtime_loader shared ; UsePrivateHeaders kernel ; # for @@ -24,37 +26,37 @@ StaticLibrary libruntime_loader.a : kernel_cpp.cpp KMessage.cpp : - mutex.o - recursive_lock.o - syscalls.o - sem.o + mutex.o + recursive_lock.o + syscalls.o + sem.o - errno.o - fcntl.o + errno.o + fcntl.o - ctype.o - LocaleData.o + ctype.o + LocaleData.o - memchr.o - memcmp.o - memmove.o - strcasecmp.o - strcat.o - strchr.o - strcmp.o - strcpy.o - strcspn.o - strdup.o - strerror.o - strlcat.o - strlcpy.o + memchr.o + memcmp.o + memmove.o + strcasecmp.o + strcat.o + strchr.o + strcmp.o + strcpy.o + strcspn.o + strdup.o + strerror.o + strlcat.o + strlcpy.o strlen.o - strncmp.o - strnlen.o - strpbrk.o - strrchr.o - strspn.o - strstr.o + strncmp.o + strnlen.o + strpbrk.o + strrchr.o + strspn.o + strstr.o [ FGristFiles kernel_vsprintf.o ] ; @@ -88,8 +90,8 @@ Ld runtime_loader : [ FGristFiles $(sources:S=$(SUFOBJ)) ] libruntime_loader.a libruntime_loader_$(TARGET_ARCH).a - $(TARGET_STATIC_LIBSUPC++) - $(TARGET_GCC_LIBGCC) + $(HAIKU_STATIC_LIBSUPC++_$(TARGET_PACKAGING_ARCH)) + $(HAIKU_GCC_LIBGCC_$(TARGET_PACKAGING_ARCH)) : $(HAIKU_TOP)/src/system/ldscripts/$(TARGET_ARCH)/runtime_loader.ld : --no-undefined -shared -soname=runtime_loader ; diff --git a/src/system/runtime_loader/arch/arm/Jamfile b/src/system/runtime_loader/arch/arm/Jamfile index 23bb1bd8d6..afc33d34ac 100644 --- a/src/system/runtime_loader/arch/arm/Jamfile +++ b/src/system/runtime_loader/arch/arm/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader arch arm ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders runtime_loader ; UsePrivateSystemHeaders ; @@ -8,9 +10,9 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; StaticLibrary libruntime_loader_$(TARGET_ARCH).a : arch_relocate.cpp : - atomic.o - thread.o + atomic.o + thread.o - arch_string.o - memset.o -; + arch_string.o + memset.o + ; diff --git a/src/system/runtime_loader/arch/m68k/Jamfile b/src/system/runtime_loader/arch/m68k/Jamfile index 55b22e3bbd..a47443abe3 100644 --- a/src/system/runtime_loader/arch/m68k/Jamfile +++ b/src/system/runtime_loader/arch/m68k/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader arch m68k ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders runtime_loader ; UsePrivateSystemHeaders ; @@ -8,9 +10,9 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; StaticLibrary libruntime_loader_$(TARGET_ARCH).a : arch_relocate.cpp : - atomic.o - thread.o + atomic.o + thread.o - arch_string.o - memset.o -; + arch_string.o + memset.o + ; diff --git a/src/system/runtime_loader/arch/ppc/Jamfile b/src/system/runtime_loader/arch/ppc/Jamfile index 553d13ff5c..0010afde37 100644 --- a/src/system/runtime_loader/arch/ppc/Jamfile +++ b/src/system/runtime_loader/arch/ppc/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader arch ppc ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders runtime_loader ; UsePrivateSystemHeaders ; @@ -8,9 +10,9 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; StaticLibrary libruntime_loader_$(TARGET_ARCH).a : arch_relocate.cpp : - atomic.o - thread.o + atomic.o + thread.o - memcpy.o - memset.o -; + memcpy.o + memset.o + ; diff --git a/src/system/runtime_loader/arch/x86/Jamfile b/src/system/runtime_loader/arch/x86/Jamfile index 7455375f7b..9b59368cc5 100644 --- a/src/system/runtime_loader/arch/x86/Jamfile +++ b/src/system/runtime_loader/arch/x86/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader arch x86 ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders runtime_loader ; UsePrivateSystemHeaders ; @@ -8,9 +10,8 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; StaticLibrary libruntime_loader_$(TARGET_ARCH).a : arch_relocate.cpp : - atomic.o - thread.o + atomic.o + thread.o -# memcpy.o - arch_string.o -; + arch_string.o + ; diff --git a/src/system/runtime_loader/arch/x86_64/Jamfile b/src/system/runtime_loader/arch/x86_64/Jamfile index a894a0c1b5..b9baa7906e 100644 --- a/src/system/runtime_loader/arch/x86_64/Jamfile +++ b/src/system/runtime_loader/arch/x86_64/Jamfile @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src system runtime_loader arch x86_64 ; +local architecture = $(TARGET_PACKAGING_ARCH) ; + UsePrivateHeaders runtime_loader ; UsePrivateSystemHeaders ; @@ -8,7 +10,7 @@ SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) ] ; StaticLibrary libruntime_loader_$(TARGET_ARCH).a : arch_relocate.cpp : - atomic.o - thread.o - arch_string.o -; + atomic.o + thread.o + arch_string.o + ; diff --git a/src/tests/add-ons/kernel/drivers/audio/Jamfile b/src/tests/add-ons/kernel/drivers/audio/Jamfile index a437cd0ac2..260a56f82b 100644 --- a/src/tests/add-ons/kernel/drivers/audio/Jamfile +++ b/src/tests/add-ons/kernel/drivers/audio/Jamfile @@ -8,8 +8,6 @@ SubDirCcFlags [ FDefines HAIKU_MULTI_AUDIO=1 ] ; SimpleTest multi_audio_test : multi_audio_test.cpp argv.c - - : libroot.so ; SEARCH on [ FGristFiles diff --git a/src/tests/add-ons/kernel/file_systems/bfs/bfs_shell/Jamfile b/src/tests/add-ons/kernel/file_systems/bfs/bfs_shell/Jamfile index f5836bef77..2a0209c2fa 100644 --- a/src/tests/add-ons/kernel/file_systems/bfs/bfs_shell/Jamfile +++ b/src/tests/add-ons/kernel/file_systems/bfs/bfs_shell/Jamfile @@ -33,7 +33,7 @@ SUBDIRSYSHDRS = $(oldSubDirSysHdrs) ; SubDirHdrs $(bfsSourceDir) ; UsePrivateHeaders [ FDirName kernel ] ; # For kernel_cpp.cpp -SYSHDRS = $(HAIKU_HDRS) ; +SYSHDRS = $(HAIKU_HDRS_$(HAIKU_PACKAGING_ARCH)) ; { diff --git a/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/kernel_add_on/Jamfile b/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/kernel_add_on/Jamfile index dba89734f4..5f22359e75 100644 --- a/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/kernel_add_on/Jamfile +++ b/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/kernel_add_on/Jamfile @@ -51,7 +51,7 @@ KernelAddon userlandfs $(kernelC++) - : $(HAIKU_GCC_LIBGCC) + : $(HAIKU_GCC_LIBGCC_$(TARGET_PACKAGING_ARCH) # TARGET_GCC_LIBGCC is not defined for TARGET_PLATFORM != haiku, # but the compiler is the same in this case anyway. ; diff --git a/src/tests/kits/game/chart/Jamfile b/src/tests/kits/game/chart/Jamfile index 50040512b6..ac52086ccb 100644 --- a/src/tests/kits/game/chart/Jamfile +++ b/src/tests/kits/game/chart/Jamfile @@ -8,7 +8,7 @@ Application Chart : ChartRender.cpp ChartView.cpp ChartWindow.cpp - : be game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be game localestub $(TARGET_LIBSUPC++) : Chart.rdef ; diff --git a/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile b/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile index 10e61e55d9..de37774a57 100644 --- a/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile +++ b/src/tests/kits/net/preflet/InterfacesAddOn/Jamfile @@ -31,7 +31,7 @@ Addon Interfaces : libbnetapi.so $(TARGET_LIBSUPC++) $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) + localestub libicon.a libagg.a ; diff --git a/src/tests/kits/net/preflet/Jamfile b/src/tests/kits/net/preflet/Jamfile index c5a5a1df5f..8c8e0095a6 100644 --- a/src/tests/kits/net/preflet/Jamfile +++ b/src/tests/kits/net/preflet/Jamfile @@ -5,7 +5,7 @@ Preference NetworkSetup : NetworkSetupWindow.cpp NetworkSetupProfile.cpp NetworkSetupAddOn.cpp - : be root $(TARGET_LIBSTDC++) $(HAIKU_LOCALE_LIBS) + : be root $(TARGET_LIBSTDC++) localestub : NetworkSetup.rdef ; diff --git a/src/tests/kits/opengl/glinfo/Jamfile b/src/tests/kits/opengl/glinfo/Jamfile index 3c37dc26c0..be8dec64a0 100644 --- a/src/tests/kits/opengl/glinfo/Jamfile +++ b/src/tests/kits/opengl/glinfo/Jamfile @@ -25,7 +25,7 @@ Preference GLInfo : $(sources) : be GL libglut.so - translation libcolumnlistview.a $(HAIKU_LOCALE_LIBS) + translation libcolumnlistview.a localestub $(TARGET_LIBSUPC++) [ BuildFeatureAttribute glu : library ] : diff --git a/src/tests/servers/app/playground/Jamfile b/src/tests/servers/app/playground/Jamfile index 552acbdfac..bc4da0797b 100644 --- a/src/tests/servers/app/playground/Jamfile +++ b/src/tests/servers/app/playground/Jamfile @@ -11,7 +11,7 @@ Application Playground : ObjectView.cpp ObjectWindow.cpp States.cpp - : be $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) + : be $(TARGET_LIBSUPC++) localestub : Playground.rdef ; diff --git a/src/tests/servers/app/regularapps/Jamfile b/src/tests/servers/app/regularapps/Jamfile index 220fcd18d7..e56acc2f6d 100644 --- a/src/tests/servers/app/regularapps/Jamfile +++ b/src/tests/servers/app/regularapps/Jamfile @@ -15,7 +15,7 @@ SimpleTest TestApp_Clock : cl_view.cpp cl_wind.cpp clock.cpp - : be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : be localestub $(TARGET_LIBSUPC++) : Clock.rdef ; diff --git a/src/tests/servers/registrar/Jamfile b/src/tests/servers/registrar/Jamfile index 925515292e..bff6c5cc08 100644 --- a/src/tests/servers/registrar/Jamfile +++ b/src/tests/servers/registrar/Jamfile @@ -113,7 +113,7 @@ Server test_registrar R5Compatibility.cpp : - be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + be localestub $(TARGET_LIBSTDC++) : registrar.rdef ; diff --git a/src/tests/system/benchmarks/libMicro/Jamfile b/src/tests/system/benchmarks/libMicro/Jamfile index fdeaf6d536..7c247b6046 100644 --- a/src/tests/system/benchmarks/libMicro/Jamfile +++ b/src/tests/system/benchmarks/libMicro/Jamfile @@ -3,8 +3,9 @@ SubDir HAIKU_TOP src tests system benchmarks libMicro ; SEARCH_SOURCE = [ FDirName $(SUBDIR) ] ; # filter warnings we don't want here -TARGET_WARNING_CCFLAGS = [ FFilter $(TARGET_WARNING_CCFLAGS) - : -Wall -Wmissing-prototypes -Wsign-compare ] ; +TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH) + = [ FFilter $(TARGET_WARNING_CCFLAGS_$(TARGET_PACKAGING_ARCH)) + : -Wall -Wmissing-prototypes -Wsign-compare ] ; UseHeaders [ FDirName $(SUBDIR) $(SUBDIR) $(SUBDIR) $(SUBDIR) $(SUBDIR) headers posix ] : true ; UseHeaders [ FDirName $(SUBDIR) ] : true ; @@ -38,30 +39,30 @@ BinCommand bind : : libmicro.a $(TARGET_NETWORK_LIBS) ; BinCommand atomic : - : libelided.a libroot.so ; + : libelided.a ; BinCommand cachetocache : - : libelided.a libroot.so ; + : libelided.a ; BinCommand cascade_mutex : cascade_mutex.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand cascade_cond : cascade_cond.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand cascade_lockf : cascade_lockf.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand cascade_fcntl : cascade_fcntl.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand cascade_flock : cascade_flock.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand chdir : chdir.c @@ -69,7 +70,7 @@ BinCommand chdir : BinCommand close : close.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand close_tcp : close_tcp.c @@ -81,27 +82,27 @@ BinCommand connection : BinCommand dup : dup.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand exec_bin : exec_bin.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand exec : exec.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand exit : exit.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand exp : exp.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand fcntl : fcntl.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand fcntl_ndelay : fcntl_ndelay.c @@ -109,23 +110,23 @@ BinCommand fcntl_ndelay : BinCommand file_lock : file_lock.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand fork : fork.c - : libmicro.a libroot.so ; + : libmicro.a ; # atm unsupported BinCommand getcontext : - : libelided.a libroot.so ; + : libelided.a ; BinCommand getenv : getenv.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand gettimeofday : gettimeofday.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand getpeername : getpeername.c @@ -133,11 +134,11 @@ BinCommand getpeername : BinCommand getpid : getpid.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand getrusage : getrusage.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand getsockname : getsockname.c @@ -145,7 +146,7 @@ BinCommand getsockname : BinCommand isatty : isatty.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand listen : listen.c @@ -153,75 +154,75 @@ BinCommand listen : BinCommand localtime_r : localtime_r.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand log : log.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand longjmp : longjmp.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand lrand48 : lrand48.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand lseek : lseek.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand malloc : malloc.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand memcpy : memcpy.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand memmove : memmove.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand memrand : memrand.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand memset : memset.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand mktime : mktime.c - : libmicro.a libroot.so ; + : libmicro.a ; # atm unsupported BinCommand mprotect : - : libelided.a libroot.so ; + : libelided.a ; BinCommand mmap : mmap.c - : libmicro.a libroot.so ; + : libmicro.a ; # atm unsupported BinCommand msync : - : libelided.a libroot.so ; + : libelided.a ; BinCommand munmap : munmap.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand mutex : mutex.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand nop : nop.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand open : open.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand pipe : pipe.c @@ -233,28 +234,28 @@ BinCommand poll : BinCommand pread : pread.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand pthread_create : pthread_create.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand pwrite : pwrite.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand read : read.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand realpath : realpath.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand recurse : recurse.c recurse2.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand select : select.c @@ -262,11 +263,11 @@ BinCommand select : # atm unsupported BinCommand semop : - : libelided.a libroot.so ; + : libelided.a ; # atm unsupported BinCommand setcontext : - : libelided.a libroot.so ; + : libelided.a ; BinCommand setsockopt : setsockopt.c @@ -274,19 +275,19 @@ BinCommand setsockopt : BinCommand sigaction : sigaction.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand siglongjmp : siglongjmp.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand signal : signal.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand sigprocmask : sigprocmask.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand socket : @@ -302,56 +303,56 @@ BinCommand socketpair : BinCommand stat : stat.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strcasecmp : strcasecmp.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strchr : strchr.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strcmp : strcmp.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strcpy : strcpy.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strftime : strftime.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strlen : strlen.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand strtol : strtol.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand system : system.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand time : time.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand times : times.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand write : write.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand writev : writev.c - : libmicro.a libroot.so ; + : libmicro.a ; BinCommand tattle : tattle.c - : libmicro.a libroot.so ; + : libmicro.a ; diff --git a/src/tests/system/kernel/cache/Jamfile b/src/tests/system/kernel/cache/Jamfile index 96070b6b3c..b17bead542 100644 --- a/src/tests/system/kernel/cache/Jamfile +++ b/src/tests/system/kernel/cache/Jamfile @@ -9,7 +9,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src system kernel cache ] ; StdBinCommands cache_control.cpp - : libroot.so ; + ; SimpleTest BlockMapTest : BlockMapTest.cpp diff --git a/src/tests/system/kernel/unit/Jamfile b/src/tests/system/kernel/unit/Jamfile index 131a7a3bb3..3037c9d10a 100644 --- a/src/tests/system/kernel/unit/Jamfile +++ b/src/tests/system/kernel/unit/Jamfile @@ -16,7 +16,7 @@ KernelAddon kernel_unit_tests : : kernel_unit_tests_lock.o - $(TARGET_STATIC_LIBSUPC++) + $(HAIKU_STATIC_LIBSUPC++_$(TARGET_PACKAGING_ARCH)) ; diff --git a/src/tests/system/libroot/posix/Jamfile b/src/tests/system/libroot/posix/Jamfile index b6861c6855..511752c30c 100644 --- a/src/tests/system/libroot/posix/Jamfile +++ b/src/tests/system/libroot/posix/Jamfile @@ -4,7 +4,8 @@ UsePrivateHeaders libroot syslog_daemon ; # filter warnings about strftime()-formats in locale_test -TARGET_WARNING_C++FLAGS on [ FGristFiles locale_test.o ] += -Wno-format ; +TARGET_WARNING_C++FLAGS_$(TARGET_PACKAGING_ARCH) + on [ FGristFiles locale_test.o ] += -Wno-format ; # POSIX/libc tests SimpleTest abort_test : abort_test.cpp ; diff --git a/src/tools/Jamfile b/src/tools/Jamfile index cf7ecbfff0..e540625674 100644 --- a/src/tools/Jamfile +++ b/src/tools/Jamfile @@ -53,6 +53,7 @@ BuildPlatformMain mkindex : mkindex.cpp : $(HOST_LIBBE) ; BuildPlatformMain rm_attrs_tmp : rm_attrs.cpp : $(HOST_LIBSUPC++) $(HOST_LIBSTDC++) ; +PLATFORM on rm_attrs = host ; MakeLocateDebug rm_attrs ; File rm_attrs : rm_attrs_tmp ; MODE on rm_attrs = 755 ; diff --git a/src/tools/gensyscalls/Jamfile b/src/tools/gensyscalls/Jamfile index 156b9d78e3..512d0b0757 100644 --- a/src/tools/gensyscalls/Jamfile +++ b/src/tools/gensyscalls/Jamfile @@ -1,7 +1,5 @@ SubDir HAIKU_TOP src tools gensyscalls ; -SubDirHdrs [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ; - # What want to do here is analyze the header and generate headers # and sources containing information about the syscalls (like what parameters @@ -21,135 +19,173 @@ SubDirHdrs [ FDirName $(SUBDIR) arch $(TARGET_ARCH) ] ; # * gensyscalls.cpp and the generated gensyscalls_infos.cpp are compiled into # the gensyscalls tool. # * gensyscalls has options to generate the various output files: -# - syscalls.S.inc: Used to define the syscall functions in libroot. -# - syscall_dispatcher.h: Big "switch" statement for the syscall -# dispatcher in the kernel. -# - syscall_numbers.h: Macro definitions assigning indices to the -# syscalls. -# - syscall_table.h: An array with syscall information in the -# kernel. Used for dispatching syscalls e.g. for x86. -# - strace_syscalls.h: Syscall information needed by strace. +# - syscalls.S.inc: Used to define the syscall +# functions in libroot. +# - syscall_dispatcher.h: Big "switch" statement for +# the syscall dispatcher in the kernel. +# - syscall_numbers.h: Macro definitions assigning +# indices to the syscalls. +# - syscall_table.h: An array with syscall +# information in the kernel. Used for dispatching syscalls e.g. for x86. +# - strace_syscalls.h: Syscall information needed by +# strace. -# preprocess the syscalls header - -rule PreprocessSyscalls +rule PreprocessSyscalls preprocessedHeader : header : architecture { - # PreprocessSyscalls :
; + # PreprocessSyscalls :
: ; - Depends $(<) : $(>) ; + Depends $(preprocessedHeader) : $(header) ; - local headers = [ on $(1) return $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ] ; + local headers = [ on $(preprocessedHeader) + return $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ] ; local sysHeaders = - $(TARGET_PRIVATE_SYSTEM_HEADERS) - [ ArchHeaders $(TARGET_KERNEL_ARCH) ] - [ on $(1) return $(SUBDIRSYSHDRS) $(SYSHDRS) ] - $(HAIKU_HDRS) ; + $(TARGET_PRIVATE_SYSTEM_HEADERS_$(architecture)) + [ ArchHeaders $(TARGET_ARCH_$(architecture)) ] + [ on $(preprocessedHeader) return $(SUBDIRSYSHDRS) $(SYSHDRS) ] + $(TARGET_HDRS_$(architecture)) ; - HDRS on $(<) = $(headers) ; - SYSHDRS on $(<) = $(sysHeaders) ; + HDRS on $(preprocessedHeader) = $(headers) ; + SYSHDRS on $(preprocessedHeader) = $(sysHeaders) ; - HDRRULE on $(>) = HdrRule ; - HDRSCAN on $(>) = $(HDRPATTERN) ; - HDRSEARCH on $(>) = $(headers) $(sysHeaders) $(STDHDRS) ; - HDRGRIST on $(>) = $(HDRGRIST) ; + HDRRULE on $(header) = HdrRule ; + HDRSCAN on $(header) = $(HDRPATTERN) ; + HDRSEARCH on $(header) = $(headers) $(sysHeaders) $(STDHDRS) ; + HDRGRIST on $(header) = $(HDRGRIST) ; - DEFINES on $(<) += $(HAIKU_DEFINES) GEN_SYSCALL_INFOS_PROCESSING ; + DEFINES on $(preprocessedHeader) += $(TARGET_DEFINES_$(architecture)) + $(TARGET_DEFINES) GEN_SYSCALL_INFOS_PROCESSING ; - CCFLAGS on $(<) += $(HAIKU_CCFLAGS) $(SUBDIRCCFLAGS) $(OPTIM) ; - CCHDRS on $(<) = [ FIncludes $(headers) : $(HAIKU_LOCAL_INCLUDES_OPTION) ] - $(HAIKU_INCLUDES_SEPARATOR) - [ FSysIncludes $(sysHeaders) : $(HAIKU_SYSTEM_INCLUDES_OPTION) ] ; - CCDEFS on $(<) = [ on $(<) FDefines $(DEFINES) ] ; + CC on $(preprocessedHeader) = $(TARGET_C++_$(architecture)) ; + CCFLAGS on $(preprocessedHeader) += $(TARGET_CCFLAGS_$(architecture)) + $(SUBDIRCCFLAGS) $(OPTIM) ; + CCHDRS on $(preprocessedHeader) = + [ FIncludes $(headers) + : $(TARGET_LOCAL_INCLUDES_OPTION_$(architecture)) ] + $(TARGET_INCLUDES_SEPARATOR_$(architecture)) + [ FSysIncludes $(sysHeaders) + : $(TARGET_SYSTEM_INCLUDES_OPTION_$(architecture)) ] ; + CCDEFS on $(preprocessedHeader) + = [ on $(preprocessedHeader) FDefines $(DEFINES) ] ; } + actions PreprocessSyscalls { - $(HAIKU_C++) -xc++ -E "$(2)" $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ; + $(CC) -xc++ -E "$(2)" $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ; } -local syscallsHeader = [ FGristFiles syscalls.h ] ; -SEARCH on $(syscallsHeader) = [ FDirName $(HAIKU_TOP) headers private system ] ; -# Generate the preprocessed syscalls.h header. It will be parsed by -# gensyscallinfos (it contains marker #pragmas). -local syscallsHeaderPPParsable = [ FGristFiles syscalls.h.pp.parsable ] ; -MakeLocateArch $(syscallsHeaderPPParsable) ; -PreprocessSyscalls $(syscallsHeaderPPParsable) : $(syscallsHeader) ; - - -# build gensyscallinfos - -BuildPlatformMain gensyscallinfos - : gensyscallinfos.cpp - : $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) -; - - -# generate the syscall infos source file and the source for the header it -# includes - -local syscallInfos = [ FGristFiles gensyscalls_infos.cpp ] ; -local syscallTypesSizesSource = [ FGristFiles syscall_types_sizes.h.cpp ] ; -local syscallTypesSizes = [ FGristFiles syscall_types_sizes.h ] ; -MakeLocateArch $(syscallInfos) $(syscallTypesSizesSource) $(syscallTypesSizes) ; - -rule GenSyscallInfos +rule GenSyscallInfos targets : sources : gensyscallinfos { - Depends $(1) : gensyscallinfos $(2) ; - GenSyscallInfos1 $(1) : gensyscallinfos $(2) ; + Depends $(targets) : $(gensyscallinfos) $(sources) ; + GenSyscallInfos1 $(targets) : $(gensyscallinfos) $(sources) ; } + actions GenSyscallInfos1 { $(2[1]) $(2[2]) $(1) } -GenSyscallInfos $(syscallInfos) $(syscallTypesSizesSource) - : $(syscallsHeaderPPParsable) ; -TARGET_HDRS on $(syscallTypesSizes) - = [ on $(syscallTypesSizes) return $(TARGET_HDRS) ] - $(TARGET_PRIVATE_SYSTEM_HEADERS) ; -CreateAsmStructOffsetsHeader $(syscallTypesSizes) : $(syscallTypesSizesSource) ; - -#Includes $(syscallInfos) : $(syscallTypesSizes) ; - # explicitly tell jam about the inclusion of the generated header -Depends $(syscallInfos:S=$(SUFOBJ)) : $(syscallTypesSizes) ; - # NOTE: Jam messes up the "Includes" declaration, so we have to declare - # the dependency more directly. - - -# build gensyscalls - -BuildPlatformMain gensyscalls : gensyscalls.cpp $(syscallInfos) ; -LinkAgainst gensyscalls : $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ; - - -# generate the output files - -# place them where they are needed -local dir = $(HAIKU_COMMON_DEBUG_OBJECT_DIR) ; -MakeLocate syscalls.S.inc : [ FDirName $(dir) system libroot os ] ; -MakeLocate syscall_dispatcher.h : [ FDirName $(dir) system kernel ] ; -MakeLocate syscall_numbers.h : [ FDirName $(dir) system kernel ] ; -MakeLocate syscall_table.h : [ FDirName $(dir) system kernel ] ; -MakeLocate strace_syscalls.h : [ FDirName $(dir) bin debug strace ] ; - -rule GenSyscallsFile file : option +rule GenSyscallsFile file : gensyscalls : option { GENSYSCALLS_FILE_OPTION on $(file) = $(option) ; - Depends $(file) : gensyscalls ; - GenSyscallsFile1 $(file) : gensyscalls ; + Depends $(file) : $(gensyscalls) ; + GenSyscallsFile1 $(file) : $(gensyscalls) ; } + actions GenSyscallsFile1 { $(2[1]) $(GENSYSCALLS_FILE_OPTION) $(1) } -GenSyscallsFile syscalls.S.inc : -c ; -GenSyscallsFile syscall_dispatcher.h : -d ; -GenSyscallsFile syscall_numbers.h : -n ; -GenSyscallsFile syscall_table.h : -t ; -GenSyscallsFile strace_syscalls.h : -s ; + +local syscallsHeader = [ FGristFiles syscalls.h ] ; +SEARCH on $(syscallsHeader) = [ FDirName $(HAIKU_TOP) headers private system ] ; + +local architectureObject ; +for architectureObject in [ MultiArchSubDirSetup ] { + on $(architectureObject) { + local architecture = $(TARGET_PACKAGING_ARCH) ; + + # Generate the preprocessed syscalls.h header. It will be parsed by + # gensyscallinfos (it contains marker #pragmas). + local syscallsHeaderPPParsable + = [ FGristFiles syscalls.h.pp.parsable ] ; + MakeLocateArch $(syscallsHeaderPPParsable) ; + PreprocessSyscalls $(syscallsHeaderPPParsable) : $(syscallsHeader) + : $(architecture) ; + + # build gensyscallinfos + + local gensyscallinfos = gensyscallinfos_$(architecture) ; + SourceHdrs gensyscallinfos.cpp + : [ FDirName $(SUBDIR) arch $(TARGET_ARCH_$(architecture)) ] ; + BuildPlatformMain $(gensyscallinfos) + : gensyscallinfos.cpp + : $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) + ; + + # generate the syscall infos source file and the source for the header + # it includes + + local syscallInfos = [ FGristFiles gensyscalls_infos.cpp ] ; + local syscallTypesSizesSource + = [ FGristFiles syscall_types_sizes.h.cpp ] ; + local syscallTypesSizes = [ FGristFiles syscall_types_sizes.h ] ; + MakeLocateArch $(syscallInfos) $(syscallTypesSizesSource) + $(syscallTypesSizes) ; + + GenSyscallInfos $(syscallInfos) $(syscallTypesSizesSource) + : $(syscallsHeaderPPParsable) : $(gensyscallinfos) ; + + TARGET_HDRS_$(architecture) on $(syscallTypesSizes) + = [ on $(syscallTypesSizes) return $(TARGET_HDRS_$(architecture)) ] + [ FDirName $(SUBDIR) arch $(TARGET_ARCH_$(architecture)) ] + $(TARGET_PRIVATE_SYSTEM_HEADERS_$(architecture)) ; + CreateAsmStructOffsetsHeader $(syscallTypesSizes) + : $(syscallTypesSizesSource) ; + + #Includes $(syscallInfos) : $(syscallTypesSizes) ; + # explicitly tell jam about the inclusion of the generated header + Depends $(syscallInfos:S=$(SUFOBJ)) : $(syscallTypesSizes) ; + # NOTE: Jam messes up the "Includes" declaration, so we have to declare + # the dependency more directly. + + # build gensyscalls + + local gensyscalls = gensyscalls_$(architecture) ; + BuildPlatformMain $(gensyscalls) + : gensyscalls.cpp $(syscallInfos) ; + LinkAgainst $(gensyscalls) : $(HOST_LIBSTDC++) $(HOST_LIBSUPC++) ; + + # generate the output files + + # place them where they are needed + local dir = $(TARGET_COMMON_DEBUG_OBJECT_DIR_$(architecture)) ; + MakeLocate syscalls.S.inc + : [ FDirName $(dir) system libroot os ] ; + MakeLocate syscall_dispatcher.h + : [ FDirName $(dir) system kernel ] ; + MakeLocate syscall_numbers.h + : [ FDirName $(dir) system kernel ] ; + MakeLocate syscall_table.h + : [ FDirName $(dir) system kernel ] ; + MakeLocate strace_syscalls.h + : [ FDirName $(dir) bin debug strace ] ; + + GenSyscallsFile syscalls.S.inc + : $(gensyscalls) : -c ; + GenSyscallsFile syscall_dispatcher.h + : $(gensyscalls) : -d ; + GenSyscallsFile syscall_numbers.h + : $(gensyscalls) : -n ; + GenSyscallsFile syscall_table.h + : $(gensyscalls) : -t ; + GenSyscallsFile strace_syscalls.h + : $(gensyscalls) : -s ; + } +} diff --git a/src/tools/makebootable/platform/bios_ia32/Jamfile b/src/tools/makebootable/platform/bios_ia32/Jamfile index e213a48ce2..57bf117dc3 100644 --- a/src/tools/makebootable/platform/bios_ia32/Jamfile +++ b/src/tools/makebootable/platform/bios_ia32/Jamfile @@ -3,7 +3,7 @@ SubDir HAIKU_TOP src tools makebootable platform bios_ia32 ; SubDirHdrs $(HAIKU_TOP) src add-ons kernel file_systems bfs ; UsePrivateHeaders storage shared ; -UsePrivateSystemHeaders system ; +UsePrivateSystemHeaders ; SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src bin makebootable platform bios_ia32 ] ; diff --git a/src/tools/translation/inspector/Jamfile b/src/tools/translation/inspector/Jamfile index 28af0f9579..8f96ff0b61 100644 --- a/src/tools/translation/inspector/Jamfile +++ b/src/tools/translation/inspector/Jamfile @@ -21,5 +21,5 @@ DoCatalogs Inspector : ; LinkAgainst Inspector : - be tracker translation $(TARGET_LIBSUPC++) $(HAIKU_LOCALE_LIBS) ; + be tracker translation $(TARGET_LIBSUPC++) localestub ;