Add sdl_{gfx|image|mixer|net|sound|ttf}, dependencies for x86.
[haiku.git] / Jamfile
blob5098859b711d01a41c2a9173f4226b3ca396bf27
1 SubDir HAIKU_TOP ;
3 NotFile doc_files ;
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
14                 # platform.
15                 Depends $(TARGET_PLATFORM) : [
16                         BuildFeatureAttribute gcc_syslibs_devel : c++-headers
17                 ] [
18                         BuildFeatureAttribute gcc_syslibs_devel : gcc-headers
19                 ] ;
20         }
23 # Include required packages:
24 # primary architecture
25 AddHaikuImagePackages [ FFilterByBuildFeatures
26         bash coreutils curl freetype icu libsolv zlib
28         regular_image @{
29                 bzip2 ctags diffutils expat ffmpeg findutils gawk glu grep gutenprint
30                 gzip jasper jpeg
31                 less libicns libpcap libpng16 libwebp
32                 mesa mesa_devel mesa_swrast
33                 netcat
34                 sed sharutils
35                 tar tcpdump unzip wget which zip
36         }@
37 ] ;
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
51                                 regular_image @{
52                                         ffmpeg glu jasper jpeg libicns libpng libwebp mesa
53                                 }@
54                         ] ;
55                         if $(TARGET_PACKAGING_ARCH) != x86_gcc2 {
56                                 AddHaikuImagePackages [ FFilterByBuildFeatures gcc_syslibs ] ;
57                         }
58                 }
59         }
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
73         # build.
74         SubInclude HAIKU_TOP src build ;
75         SubInclude HAIKU_TOP src tools ;
76 } else {
77         SubInclude HAIKU_TOP src ;
79 if $(HAIKU_INCLUDE_3RDPARTY) {
80         SubInclude HAIKU_TOP 3rdparty ;
83 # Perform deferred SubIncludes.
84 ExecuteDeferredSubIncludes ;
86 # reset subdir
87 SubDir HAIKU_TOP ;
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.
107 local package ;
108 local packageError ;
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"
112                         "exist." ;
113                 packageError = 1 ;
114         }
116 if $(packageError) {
117         Exit ;
120 # Pseudo-target to build all targets that are localized.
121 NotFile LocalizedTargets ;
122 Depends LocalizedTargets : $(HAIKU_LOCALIZED_TARGETS) ;
124 NotFile catalogs ;
125 Depends catalogs : $(HAIKU_LOCALE_CATALOGS) ;
127 NotFile catkeys ;
128 Depends catkeys : $(HAIKU_LOCALE_OUTPUT_CATKEYS) ;