4 Depends files : doc_files ;
6 # Prepare the optional build features before parsing the Jamfile tree.
7 local architectureObject ;
8 for architectureObject in [ MultiArchSubDirSetup ] {
9 on $(architectureObject) {
10 include [ FDirName $(HAIKU_BUILD_RULES_DIR) BuildFeatures ] ;
12 # Let the target platform depend on the external header directories such
13 # that those will be unpacked before anything is built for the target
15 Depends $(TARGET_PLATFORM) : [
16 BuildFeatureAttribute gcc_syslibs_devel : c++-headers
18 BuildFeatureAttribute gcc_syslibs_devel : gcc-headers
23 # Include required packages:
24 # primary architecture
25 AddHaikuImagePackages [ FFilterByBuildFeatures
26 bash coreutils curl freetype icu libsolv zlib
29 bzip2 ctags diffutils expat ffmpeg findutils gawk glu grep gutenprint
31 less libicns libpcap libpng16 libwebp
32 mesa mesa_devel mesa_swrast
35 tar tcpdump unzip wget which zip
38 if $(HAIKU_PACKAGING_ARCHS[1]) != x86_gcc2 {
39 AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs ] ;
42 if $(HAIKU_PACKAGING_ARCHS[2]) {
43 # secondary architectures
44 local architectureObject ;
45 for architectureObject
46 in [ MultiArchSubDirSetup $(HAIKU_PACKAGING_ARCHS[2-]) ] {
47 on $(architectureObject) {
48 AddHaikuImagePackages [ FFilterByBuildFeatures
49 curl freetype icu libsolv zlib
52 ffmpeg glu jasper jpeg libicns libpng libwebp mesa
55 if $(TARGET_PACKAGING_ARCH) != x86_gcc2 {
56 AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs ] ;
62 # If enabled, make sure that OpenSSL is added to the image.
63 if [ FIsBuildFeatureEnabled openssl ] {
64 AddHaikuImagePackages openssl ;
67 # add additionally requested packages
68 AddHaikuImagePackages $(HAIKU_IMAGE_ADDITIONAL_PACKAGES) ;
70 # Optionally we allow not to include the "src" subdirectory.
71 if $(HAIKU_DONT_INCLUDE_SRC) {
72 # Don't include "src", but at least include the stuff needed for the
74 SubInclude HAIKU_TOP src build ;
75 SubInclude HAIKU_TOP src tools ;
77 SubInclude HAIKU_TOP src ;
79 if $(HAIKU_INCLUDE_3RDPARTY) {
80 SubInclude HAIKU_TOP 3rdparty ;
83 # Perform deferred SubIncludes.
84 ExecuteDeferredSubIncludes ;
89 # Execute post-build-target user config rules.
90 UserBuildConfigRulePostBuildTargets ;
92 # specify the Haiku repository contents
93 include [ FDirName $(HAIKU_BUILD_RULES_DIR) repositories Haiku ] ;
95 # specify the actual Haiku image contents
96 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuImage ] ;
98 # specify the additional image contents one for each boot type
99 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images NetBootArchive ] ;
100 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images FloppyBootImage ] ;
101 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootImage ] ;
102 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images CDBootPPCImage ] ;
103 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images HaikuCD ] ;
104 include [ FDirName $(HAIKU_BUILD_RULES_DIR) images AnybootImage ] ;
106 # Check whether all requested optional packages do actually exist.
109 for package in $(HAIKU_ADDED_OPTIONAL_PACKAGES) {
110 if ! [ on $(package) return $(HAIKU_OPTIONAL_PACKAGE_EXISTS) ] {
111 Echo "ERROR: Requested optional package \"$(package)\" does not"
120 # Pseudo-target to build all targets that are localized.
121 NotFile LocalizedTargets ;
122 Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
125 Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
128 Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;