added 13 changesets to branch 'refs/remotes/HaikuPM-github/package-management' old head: c625c5fd36fe4894ec9967db23e09f4edc4cc1f3 new head: 12629b106ee37df7495eb9e3b463bd2119762867 overview: https://github.com/haiku/HaikuPM/compare/c625c5f...12629b1 ---------------------------------------------------------------------------- c46f596: Update zlib, gettext, libiconv, ncurses packages 5ce950a: BuildFeature: missing ";" ebb78dd: Update openssl package Also use the new build feature rules 178da21: Update icu package Also use the new build feature rules. e97e4b7: Update glu and mesa package Also use the new build feature rules. 14d5e30: Update ffmpeg package and its requirements Also make use of new build feature rules. e2c74e4: Remove unused MikMod build feature 29f8805: Update freetype package Also use the new build feature rules e9f440f: Update libpng package Also make use of new build feature rules e4bd005: Update jpeg package * Also make use of new build feature rules. * Since the hacky long_jump_buffer field has been removed from the jpeg_error_mgr struct in the new package, the structure is now wrapped in the JPEGTranslator code to achieve the same behavior. 1d14716: Some renaming of zlib related jam variables a20eb7f: Update libsolv package Also make use of new build feature rules. 12629b1: Update expat package [ Ingo Weinhold <ingo_weinhold@xxxxxx> ] ---------------------------------------------------------------------------- 59 files changed, 687 insertions(+), 893 deletions(-) build/jam/BuildFeatures | 645 ++++++------------- build/jam/HaikuImage | 3 - build/jam/OptionalPackageDependencies | 18 +- build/jam/OptionalPackages | 199 +++++- build/jam/packages/Haiku | 38 -- build/jam/packages/HaikuDevel | 24 +- data/bin/freetype-config | 160 ----- src/add-ons/decorators/BeDecorator/Jamfile | 7 +- src/add-ons/decorators/MacDecorator/Jamfile | 4 +- src/add-ons/decorators/WinDecorator/Jamfile | 7 +- .../mail_daemon/inbound_protocols/pop3/Jamfile | 10 +- .../mail_daemon/outbound_protocols/smtp/Jamfile | 9 +- src/add-ons/media/media-add-ons/dvb/Jamfile | 13 +- src/add-ons/media/plugins/ffmpeg/Jamfile | 32 +- src/add-ons/opengl/swpipe/Jamfile | 25 +- src/add-ons/opengl/swrast/Jamfile | 19 +- src/add-ons/opengl/swrast_legacy/Jamfile | 23 +- src/add-ons/screen_savers/flurry/Jamfile | 10 +- src/add-ons/screen_savers/glife/Jamfile | 10 +- src/add-ons/screen_savers/gravity/Jamfile | 13 +- src/add-ons/translators/hpgs/Jamfile | 7 +- src/add-ons/translators/icns/Jamfile | 7 +- src/add-ons/translators/jpeg/JPEGTranslator.cpp | 11 +- src/add-ons/translators/jpeg/JPEGTranslator.h | 10 - src/add-ons/translators/jpeg/Jamfile | 11 +- src/add-ons/translators/jpeg/be_jerror.cpp | 13 +- src/add-ons/translators/jpeg/be_jerror.h | 28 + src/add-ons/translators/png/Jamfile | 9 +- src/apps/3dmov/Jamfile | 4 +- src/apps/glteapot/Jamfile | 13 +- src/apps/haiku3d/Jamfile | 13 +- src/bin/network/wget/Jamfile | 8 +- src/kits/Jamfile | 2 +- src/kits/locale/Jamfile | 4 +- src/kits/mail/Jamfile | 9 +- src/kits/network/libnetapi/Jamfile | 12 +- src/kits/opengl/Jamfile | 25 +- src/kits/package/solver/Jamfile | 12 +- src/libs/glut/Jamfile | 11 +- src/libs/tiff/Jamfile | 9 +- src/preferences/appearance/Jamfile | 4 +- src/preferences/time/Jamfile | 4 +- src/servers/app/Jamfile | 7 +- src/servers/app/drawing/Jamfile | 4 +- src/servers/app/drawing/Painter/Jamfile | 4 +- src/servers/app/drawing/interface/html5/Jamfile | 7 +- src/servers/app/drawing/interface/remote/Jamfile | 6 +- src/servers/app/stackandtile/Jamfile | 4 +- src/system/libroot/add-ons/icu/Jamfile | 7 +- src/tests/apps/fake_app_server/Jamfile | 2 +- src/tests/kits/locale/Jamfile | 6 +- src/tests/kits/opengl/demos/gears/Jamfile | 4 +- src/tests/kits/opengl/direct_mode/Jamfile | 4 +- src/tests/kits/opengl/glinfo/Jamfile | 10 +- src/tests/kits/opengl/glsl/Jamfile | 5 +- src/tests/kits/opengl/glut/game_mode/Jamfile | 4 +- src/tests/servers/app/Jamfile | 2 +- src/tests/servers/app/painter/Jamfile | 2 +- src/tools/translation/pnginfo/Jamfile | 7 +- ############################################################################ Commit: c46f5969b71728cfdb2d80f753a6d02dc2ceb39c Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 13:08:57 2013 UTC Update zlib, gettext, libiconv, ncurses packages ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 850ba1f..3ddf6e0 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -810,11 +810,10 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { } else if $(HAIKU_GCC_VERSION[1]) >= 4 { HAIKU_ZLIB_FILE = zlib-1.2.7-x86-gcc4-2012-10-30.zip ; } else { - HAIKU_ZLIB_FILE = zlib-1.2.8-1-x86_gcc2.hpkg ; - HAIKU_ZLIB_DEVEL_FILE = zlib_devel-1.2.8-1-x86_gcc2.hpkg ; + HAIKU_ZLIB_FILE = zlib-1.2.8-2-x86_gcc2.hpkg ; + HAIKU_ZLIB_DEVEL_FILE = zlib_devel-1.2.8-2-x86_gcc2.hpkg ; } - HAIKU_ZLIB_SOURCE_FILE = zlib_source-1.2.8-1-x86_gcc2.hpkg ; - # TODO: Wrong architecture! Should be "any". + HAIKU_ZLIB_SOURCE_FILE = zlib_source-1.2.8-2-source.hpkg ; ExtractBuildFeatureArchives zlib : file: base $(zlibBaseURL)/$(HAIKU_ZLIB_FILE) @@ -824,8 +823,7 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { library: develop/lib/libz.so headers: develop/headers file: source $(zlibBaseURL)/$(HAIKU_ZLIB_SOURCE_FILE) - sources: source/zlib-1.2.8 - ; + sources: develop/sources/zlib-1.2.8-2/source EnableBuildFeatures zlib ; } else { diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index e050ed0..31bfa73 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -8,12 +8,13 @@ OptionalPackageDependencies Beam : LibIconv LibLayout OpenSSL PCRE ; OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies BurnItNow : CDRecord ; OptionalPackageDependencies Caya : Expat ; -OptionalPackageDependencies CDRecord : GetText LibIconv ; +OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; OptionalPackageDependencies Development : DevelopmentBase Perl Zlib-devel ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; -OptionalPackageDependencies GetText : LibIconv ; +OptionalPackageDependencies GetText : GetTextLibintl ; +OptionalPackageDependencies GetTextLibintl : LibIconv ; OptionalPackageDependencies Git : Expat Curl OpenSSL LibIconv ; OptionalPackageDependencies GitDoc : Man Git ; OptionalPackageDependencies ICU-devel : DevelopmentBase ; @@ -37,7 +38,7 @@ OptionalPackageDependencies Readline : NCurses ; OptionalPackageDependencies SDLLibs : XiphLibs libmad libmikmod Libmng libmodplug physfs ; OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ; OptionalPackageDependencies Transmission : LibEvent Curl OpenSSL LibIconv ; -OptionalPackageDependencies Vim : GetText LibIconv ; +OptionalPackageDependencies Vim : GetTextLibintl LibIconv ; OptionalPackageDependencies WebPositive : Curl LibXML2 SQLite WebKit WebPositiveBookmarks ; OptionalPackageDependencies wpa_supplicant : OpenSSL ; OptionalPackageDependencies XZ-Utils : Tar ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index c5f3559..6b91d17 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -46,6 +46,7 @@ # Fastdep - fast dependency generator for C/C++ files # friss - RSS/ATOM/... feeds reader # GetText - a framework to help produce multi-lingual messages. +# GetTextLibintl - GetText's libintl # Git - the distributed version control system # GitDoc - documentation for the distributed version control system # GPerf - the perfect hash function generator. @@ -882,7 +883,7 @@ if [ IsOptionalHaikuImagePackageAdded GetText ] { : : cdPackage ; } else { InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/gettext-0.18.1.1-3-x86_gcc2.hpkg ; + $(hpkgBaseURL)/gettext-0.18.1.1-4-x86_gcc2.hpkg ; } } else if $(TARGET_ARCH) = x86_64 { InstallOptionalHaikuImagePackage @@ -894,6 +895,27 @@ if [ IsOptionalHaikuImagePackageAdded GetText ] { } +# GetTextLibintl +if [ IsOptionalHaikuImagePackageAdded GetTextLibintl ] { + if $(TARGET_ARCH) = x86 { + if $(HAIKU_GCC_VERSION[1]) >= 4 { +# InstallOptionalHaikuImagePackage +# $(baseURL)/gettext-0.18.1.1-r1a4-x86-gcc4-2012-08-30.zip +# : : cdPackage ; + } else { + InstallOptionalHaikuImagePackage + $(hpkgBaseURL)/gettext_libintl-0.18.1.1-4-x86_gcc2.hpkg ; + } + } else if $(TARGET_ARCH) = x86_64 { +# InstallOptionalHaikuImagePackage +# $(baseURL)/gettext-0.18.1.1-x86_64-2012-08-17.zip +# : : cdPackage ; + } else { + Echo "No optional package GetText available for $(TARGET_ARCH)" ; + } +} + + # Git if [ IsOptionalHaikuImagePackageAdded Git ] { if $(TARGET_ARCH) = x86 { @@ -1126,7 +1148,7 @@ if [ IsOptionalHaikuImagePackageAdded LibIconv ] { $(baseURL)/libiconv-1.13.1-r1a4-x86-gcc4-2012-08-30.zip ; } else { InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/libiconv-1.13.1-4-x86_gcc2.hpkg ; + $(hpkgBaseURL)/libiconv-1.13.1-5-x86_gcc2.hpkg ; } } else if $(TARGET_ARCH) = x86_64 { InstallOptionalHaikuImagePackage @@ -1323,7 +1345,7 @@ if [ IsOptionalHaikuImagePackageAdded NCurses ] { Echo "No optional package NCurses available for gcc 4" ; } else { InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/ncurses-5.9-6-x86_gcc2.hpkg ; + $(hpkgBaseURL)/ncurses-5.9-7-x86_gcc2.hpkg ; } } } ############################################################################ Commit: 5ce950ae760a295b454c15671ca040f8918c9ea2 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 14:42:36 2013 UTC BuildFeature: missing ";" ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 3ddf6e0..cc4de91 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -824,6 +824,7 @@ if $(TARGET_ARCH) in arm ppc x86 x86_64 { headers: develop/headers file: source $(zlibBaseURL)/$(HAIKU_ZLIB_SOURCE_FILE) sources: develop/sources/zlib-1.2.8-2/source + ; EnableBuildFeatures zlib ; } else { ############################################################################ Commit: ebb78dd9b70b96e75a2763014c579e3973f3179b Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 14:43:40 2013 UTC Update openssl package Also use the new build feature rules ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index cc4de91..ad98eb1 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -24,44 +24,32 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSL ] { HAIKU_BUILD_FEATURE_SSL = 1 ; } -if $(HAIKU_GCC_VERSION[1]) >= 4 { - if $(TARGET_ARCH) = x86_64 { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86_64-2012-12-18.zip ; - } else { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ; - } -} else { - HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-1-x86_gcc2.hpkg ; -} - -HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ; - if $(HAIKU_BUILD_FEATURE_SSL) { - if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 { - # Download the package. - local zipFile = [ DownloadFile $(HAIKU_OPENSSL_PACKAGE) - : $(HAIKU_OPENSSL_URL) ] ; - - # zip file and output directory - HAIKU_OPENSSL_ZIP_FILE = $(zipFile) ; - HAIKU_OPENSSL_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_OPENSSL_PACKAGE:B) ] ; - - # extract headers and libraries - HAIKU_OPENSSL_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_OPENSSL_DIR) - : develop/headers/ : $(zipFile) : extracted-openssl - ] ; - - HAIKU_OPENSSL_LIBS = [ ExtractArchive $(HAIKU_OPENSSL_DIR) - : - develop/lib/libcrypto.so - develop/lib/libssl.so - : $(zipFile) - : extracted-openssl - ] ; + if $(TARGET_ARCH) in x86 x86_64 { + if $(HAIKU_GCC_VERSION[1]) >= 4 { + if $(TARGET_ARCH) = x86_64 { + HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-x86_64-2012-12-18.zip ; + } else { + HAIKU_OPENSSL_PACKAGE + = openssl-1.0.0j-r1a4-x86-gcc4-2012-08-29.zip ; + } + } else { + HAIKU_OPENSSL_PACKAGE = openssl-1.0.0j-2-x86_gcc2.hpkg ; + HAIKU_OPENSSL_DEVEL_PACKAGE = openssl_devel-1.0.0j-2-x86_gcc2.hpkg ; + } - HAIKU_OPENSSL_HEADERS - = [ FDirName $(HAIKU_OPENSSL_DIR) develop/headers ] ; + HAIKU_OPENSSL_URL = $(hpkgBaseURL)/$(HAIKU_OPENSSL_PACKAGE) ; + HAIKU_OPENSSL_DEVEL_URL + = $(hpkgBaseURL)/$(HAIKU_OPENSSL_DEVEL_PACKAGE) ; + + ExtractBuildFeatureArchives openssl : + file: base $(HAIKU_OPENSSL_URL) + runtime: lib + file: devel $(HAIKU_OPENSSL_DEVEL_URL) + depends: base + libraries: develop/lib/libcrypto.so develop/lib/libssl.so + headers: develop/headers + ; EnableBuildFeatures openssl ; } else { diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 6b91d17..d5817a2 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -1478,6 +1478,9 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSH ] { if [ IsOptionalHaikuImagePackageAdded OpenSSL ] { if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 { InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_URL) ; + if [ IsOptionalHaikuImagePackageAdded DevelopmentBase ] { + InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_DEVEL_URL) ; + } } else { Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ; } diff --git a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile index 51644d2..432cb4b 100644 --- a/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile +++ b/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile @@ -17,10 +17,11 @@ local sources = ; # use OpenSSL, if enabled -if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { +if [ FIsBuildFeatureEnabled openssl ] { SubDirC++Flags -DUSE_SSL ; - SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ; - Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ; + UseBuildFeatureHeaders openssl ; + Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute openssl : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SetupFeatureObjectsDir ssl ; @@ -33,7 +34,8 @@ AddResources POP3 : POP3.rdef ; Addon POP3 : $(sources) : be libbnetapi.so libmail.so $(HAIKU_LOCALE_LIBS) - $(HAIKU_OPENSSL_LIBS) $(TARGET_LIBSUPC++) $(TARGET_NETWORK_LIBS) + [ BuildFeatureAttribute openssl : libraries ] $(TARGET_LIBSUPC++) + $(TARGET_NETWORK_LIBS) ; Package haiku-maildaemon-cvs : diff --git a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile index 425d4ad..41f742f 100644 --- a/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile +++ b/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile @@ -13,10 +13,11 @@ local sources = ; # use OpenSSL, if enabled -if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { +if [ FIsBuildFeatureEnabled openssl ] { SubDirC++Flags -DUSE_SSL ; - SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ; - Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ; + UseBuildFeatureHeaders openssl ; + Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute openssl : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SetupFeatureObjectsDir ssl ; @@ -29,7 +30,7 @@ AddResources SMTP : SMTP.rdef ; Addon SMTP : $(sources) : be libmail.so $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) - $(HAIKU_LOCALE_LIBS) $(HAIKU_OPENSSL_LIBS) + $(HAIKU_LOCALE_LIBS) [ BuildFeatureAttribute openssl : libraries ] ; DoCatalogs SMTP : diff --git a/src/bin/network/wget/Jamfile b/src/bin/network/wget/Jamfile index a9d1f7b..efc1ed2 100644 --- a/src/bin/network/wget/Jamfile +++ b/src/bin/network/wget/Jamfile @@ -12,12 +12,12 @@ SubDirSysHdrs [ FDirName $(SUBDIR) md5 ] ; # use OpenSSL, if enabled local sslSources ; -if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { +if [ FIsBuildFeatureEnabled openssl ] { SubDirCcFlags -DHAVE_LIBSSL ; - SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ; + UseBuildFeatureHeaders openssl ; sslSources = openssl.c ; Includes [ FGristFiles $(sslSources) ] - : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute openssl : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SetupFeatureObjectsDir ssl ; @@ -75,5 +75,5 @@ BinCommand wget : xmalloc.c xalloc-die.c $(sslSources) - : $(TARGET_NETWORK_LIBS) $(HAIKU_OPENSSL_LIBS) + : $(TARGET_NETWORK_LIBS) [ BuildFeatureAttribute openssl : libraries ] ; diff --git a/src/kits/mail/Jamfile b/src/kits/mail/Jamfile index cbe5947..a053f84 100644 --- a/src/kits/mail/Jamfile +++ b/src/kits/mail/Jamfile @@ -36,10 +36,11 @@ local sources = # use OpenSSL, if enabled -if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { +if [ FIsBuildFeatureEnabled openssl ] { SubDirC++Flags -DUSE_SSL ; - SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ; - Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ; + UseBuildFeatureHeaders openssl ; + Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute openssl : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SetupFeatureObjectsDir ssl ; @@ -56,7 +57,7 @@ SharedLibrary libmail.so : $(TARGET_LIBSTDC++) $(TARGET_NETWORK_LIBS) $(TARGET_SELECT_UNAME_ETC_LIB) - $(HAIKU_OPENSSL_LIBS) + [ BuildFeatureAttribute openssl : libraries ] $(HAIKU_LOCALE_LIBS) ; diff --git a/src/kits/network/libnetapi/Jamfile b/src/kits/network/libnetapi/Jamfile index 5d09f54..e2d7252 100644 --- a/src/kits/network/libnetapi/Jamfile +++ b/src/kits/network/libnetapi/Jamfile @@ -8,13 +8,14 @@ UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_wlan ] : true ; local sslSources ; local md5Sources ; -if $(HAIKU_BUILD_FEATURE_OPENSSL_ENABLED) { +if [ FIsBuildFeatureEnabled openssl ] { SubDirC++Flags -DOPENSSL_ENABLED ; - SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ; + UseBuildFeatureHeaders openssl ; sslSources = SSL.cpp ; md5Sources = ; - Includes [ FGristFiles $(sslSources) SecureSocket.cpp HttpAuthentication.cpp ] - : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ; + Includes [ FGristFiles $(sslSources) SecureSocket.cpp + HttpAuthentication.cpp ] + : [ BuildFeatureAttribute openssl : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SetupFeatureObjectsDir ssl ; @@ -71,6 +72,7 @@ SharedLibrary libbnetapi.so : UrlSynchronousRequest.cpp : - be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) $(HAIKU_OPENSSL_LIBS) + be $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) $(TARGET_LIBSUPC++) + [ BuildFeatureAttribute openssl : libraries ] libshared.a ; ############################################################################ Commit: 178da21ad1d5d80be61167ab264aeab773b48cb9 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 15:07:19 2013 UTC Update icu package Also use the new build feature rules. ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index ad98eb1..fe5aa8b 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -61,83 +61,42 @@ if $(HAIKU_BUILD_FEATURE_SSL) { # ICU # Note ICU isn't actually optional, but is still an external package -HAIKU_ICU_GCC_2_PACKAGE = icu-4.8.1.1-2-x86_gcc2.hpkg ; -HAIKU_ICU_GCC_4_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ; - # TODO: Make hpkg! -HAIKU_ICU_PPC_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ; -HAIKU_ICU_ARM_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ; -HAIKU_ICU_X86_64_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ; - if $(TARGET_ARCH) in arm ppc x86 x86_64 { - local icu_package ; if $(TARGET_ARCH) = ppc { - icu_package = $(HAIKU_ICU_PPC_PACKAGE) ; + HAIKU_ICU_PACKAGE = icu-4.8.1-ppc-2011-08-20.zip ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1-ppc-2011-12-19.zip ; } else if $(TARGET_ARCH) = arm { - icu_package = $(HAIKU_ICU_ARM_PACKAGE) ; + HAIKU_ICU_PACKAGE = icu-4.8.1.1-arm-2012-11-21.zip ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-arm-2012-11-21.zip ; } else if $(TARGET_ARCH) = x86_64 { - icu_package = $(HAIKU_ICU_X86_64_PACKAGE) ; + HAIKU_ICU_PACKAGE = icu-4.8.1.1-x86_64-2012-07-30.zip ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86_64-2012-07-30.zip ; } else if $(HAIKU_GCC_VERSION[1]) = 2 { - icu_package = $(HAIKU_ICU_GCC_2_PACKAGE) ; - HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-2-x86_gcc2.hpkg ; + HAIKU_ICU_PACKAGE = icu-4.8.1.1-3-x86_gcc2.hpkg ; + HAIKU_ICU_DEVEL_PACKAGE = icu_devel-4.8.1.1-3-x86_gcc2.hpkg ; } else { - icu_package = $(HAIKU_ICU_GCC_4_PACKAGE) ; + HAIKU_ICU_PACKAGE = icu-4.8.1.1-r1a4-x86-gcc4-2012-08-29.zip ; HAIKU_ICU_DEVEL_PACKAGE = icu-devel-4.8.1.1-x86-gcc4-2011-12-20.zip ; } - local packageFile = [ DownloadFile $(icu_package) - : $(hpkgBaseURL)/$(icu_package) ] ; - # zip file and output directory - HAIKU_ICU_PACKAGE_FILE = $(packageFile) ; - HAIKU_ICU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(icu_package:B) ] ; + HAIKU_ICU_URL = $(hpkgBaseURL)/$(HAIKU_ICU_PACKAGE) ; + HAIKU_ICU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ; - # extract libraries - if $(TARGET_ARCH) = ppc { - HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR) - : - libicudata.so.48.1 - libicui18n.so.48.1 - libicuio.so.48.1 - libicule.so.48.1 - libiculx.so.48.1 - libicutu.so.48.1 - libicuuc.so.48.1 - : $(packageFile) - : extracted-icu - ] ; - } else { - HAIKU_ICU_LIBS = [ ExtractArchive $(HAIKU_ICU_DIR) - : - develop/lib/libicudata.so.48.1.1 - develop/lib/libicui18n.so.48.1.1 - develop/lib/libicuio.so.48.1.1 - develop/lib/libicule.so.48.1.1 - develop/lib/libiculx.so.48.1.1 - develop/lib/libicutu.so.48.1.1 - develop/lib/libicuuc.so.48.1.1 - : $(packageFile) - : extracted-icu - ] ; - } - - # zip file and output directory - HAIKU_ICU_DEVEL_ZIP_FILE = [ DownloadFile $(HAIKU_ICU_DEVEL_PACKAGE) - : $(hpkgBaseURL)/$(HAIKU_ICU_DEVEL_PACKAGE) ] ; - HAIKU_ICU_DEVEL_DIR = $(HAIKU_ICU_DIR) ; - - # extract headers - HAIKU_ICU_HEADERS_DEPENDENCY = [ ExtractArchive - $(HAIKU_ICU_DEVEL_DIR:G=icu_devel) - # We need a grist here, so it's a different target than the one for the - # main package, even though it's the same directory. - : develop/headers : $(HAIKU_ICU_DEVEL_ZIP_FILE) - : extracted-icu-devel ] ; - - HAIKU_ICU_HEADERS - = [ FDirName $(HAIKU_ICU_DEVEL_DIR) develop headers ] ; + ExtractBuildFeatureArchives icu : + file: base $(HAIKU_ICU_URL) + runtime: lib + file: devel $(HAIKU_ICU_DEVEL_URL) + depends: base + libraries: + develop/lib/libicudata.so + develop/lib/libicui18n.so + develop/lib/libicuio.so + develop/lib/libicule.so + develop/lib/libiculx.so + develop/lib/libicutu.so + develop/lib/libicuuc.so + headers: develop/headers + ; EnableBuildFeatures icu ; } else { diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index d5817a2..a22e9d3 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -1033,26 +1033,10 @@ if [ IsOptionalHaikuImagePackageAdded HGrep ] { # ICU if [ IsOptionalHaikuImagePackageAdded ICU ] { - if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) = 2 { - # unzip gcc2 - InstallOptionalHaikuImagePackage - $(hpkgBaseURL)/$(HAIKU_ICU_GCC_2_PACKAGE) - : system ; - } else { - # unzip gcc4 - InstallOptionalHaikuImagePackage - $(baseURL)/$(HAIKU_ICU_GCC_4_PACKAGE) - : system lib ; - } - } else if $(TARGET_ARCH) = arm { - InstallOptionalHaikuImagePackage - : $(baseURL)/$(HAIKU_ICU_ARM_PACKAGE) - : system lib ; - } else if $(TARGET_ARCH) = x86_64 { + if $(TARGET_ARCH) in arm ppc x86 x86_64 { InstallOptionalHaikuImagePackage - : $(baseURL)/$(HAIKU_ICU_X86_64_PACKAGE) - : system lib ; + $(hpkgBaseURL)/$(HAIKU_ICU_URL) + : system ; } else { Echo "No optional package ICU available for $(TARGET_ARCH)" ; } diff --git a/src/kits/Jamfile b/src/kits/Jamfile index bc6ffe2..4c23f53 100644 --- a/src/kits/Jamfile +++ b/src/kits/Jamfile @@ -41,7 +41,7 @@ SharedLibrary libbe.so : : libagg.a libroot.so # make sure it links against our libroot.so - $(TARGET_LIBSTDC++) $(HAIKU_ICU_LIBS) + $(TARGET_LIBSTDC++) [ BuildFeatureAttribute icu : libraries ] ; # Build libbe_test.so diff --git a/src/kits/locale/Jamfile b/src/kits/locale/Jamfile index ec9d4d4..47cf074 100644 --- a/src/kits/locale/Jamfile +++ b/src/kits/locale/Jamfile @@ -4,6 +4,7 @@ AddSubDirSupportedPlatforms libbe_test ; UsePrivateHeaders locale shared ; UsePublicHeaders locale storage ; +UseBuildFeatureHeaders icu ; local sources = cat.cpp @@ -49,8 +50,7 @@ local sources = ; -SubDirSysHdrs $(HAIKU_ICU_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. diff --git a/src/preferences/time/Jamfile b/src/preferences/time/Jamfile index bd1295a..907507f 100644 --- a/src/preferences/time/Jamfile +++ b/src/preferences/time/Jamfile @@ -4,6 +4,7 @@ SetSubDirSupportedPlatformsBeOSCompatible ; UsePrivateHeaders interface locale shared [ FDirName libroot time ] ; UsePrivateSystemHeaders ; +UseBuildFeatureHeaders icu ; local sources = AnalogClock.cpp @@ -25,8 +26,7 @@ local sources = ; -SubDirSysHdrs $(HAIKU_ICU_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. diff --git a/src/system/libroot/add-ons/icu/Jamfile b/src/system/libroot/add-ons/icu/Jamfile index 7627236..84d070e 100644 --- a/src/system/libroot/add-ons/icu/Jamfile +++ b/src/system/libroot/add-ons/icu/Jamfile @@ -7,6 +7,7 @@ UsePrivateHeaders [ FDirName libroot time ] shared ; +UseBuildFeatureHeaders icu ; local sources = ICUCategoryData.cpp @@ -22,14 +23,14 @@ local sources = ICUTimeData.cpp ; -SubDirSysHdrs $(HAIKU_ICU_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute icu : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. SharedLibrary libroot-addon-icu.so : $(sources) : - libreferenceable.a $(TARGET_LIBSTDC++) $(HAIKU_ICU_LIBS) + libreferenceable.a $(TARGET_LIBSTDC++) + [ BuildFeatureAttribute icu : libraries ] ; diff --git a/src/tests/kits/locale/Jamfile b/src/tests/kits/locale/Jamfile index ce8092e..9a8296c 100644 --- a/src/tests/kits/locale/Jamfile +++ b/src/tests/kits/locale/Jamfile @@ -2,6 +2,7 @@ SubDir HAIKU_TOP src tests kits locale ; UsePublicHeaders locale ; UsePrivateHeaders locale shared ; +UseBuildFeatureHeaders icu ; # Pseudo target to build all locale kit tests NotFile LocaleKitTests ; @@ -33,14 +34,13 @@ LocaleTest genericNumberFormatTest.cpp ; LocaleTest localeTest.cpp ; LocaleTest formatTest.cpp ; -SubDirSysHdrs $(HAIKU_ICU_HEADERS) ; -Includes [ FGristFiles ICUTest.cpp ] : $(HAIKU_ICU_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles ICUTest.cpp ] : [ BuildFeatureAttribute icu : headers ] ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. Application ICUTest : ICUTest.cpp : - be $(TARGET_LIBSUPC++) $(HAIKU_ICU_LIBS) ; + be $(TARGET_LIBSUPC++) [ BuildFeatureAttribute icu : libraries ] ; Addon catalogTestAddOn : catalogTestAddOn.cpp ############################################################################ Commit: e97e4b74a062e577778a8012673e95290bb18dea Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 16:46:34 2013 UTC Update glu and mesa package Also use the new build feature rules. ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index fe5aa8b..940d171 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -264,21 +264,24 @@ if $(TARGET_ARCH) = x86 { # GLU (GL Utilities) if $(TARGET_ARCH) = x86 { if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_GLU_FILE = glu-9.0-x86-gcc4-2012-11-13.zip ; + # TODO:... + HAIKU_GLU_PACKAGE = glu-9.0-x86-gcc4-2012-11-13.zip ; } else { - HAIKU_GLU_FILE = glu-9.0-x86-gcc2-2012-11-13.zip ; + HAIKU_GLU_PACKAGE = glu-9.0.0-1-x86_gcc2.hpkg ; + HAIKU_GLU_DEVEL_PACKAGE = glu_devel-9.0.0-1-x86_gcc2.hpkg ; } - local zipFile = [ DownloadFile $(HAIKU_GLU_FILE) - : $(baseURL)/lib/$(HAIKU_GLU_FILE) ] ; + HAIKU_GLU_URL = $(hpkgBaseURL)/$(HAIKU_GLU_PACKAGE) ; + HAIKU_GLU_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) ; - HAIKU_GLU_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_GLU_FILE:B) ] ; - HAIKU_GLU_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_GLU_DIR) - : develop/headers/os/opengl/GL : $(zipFile) : extracted-glu-headers ] ; - HAIKU_GLU_LIBS = [ ExtractArchive $(HAIKU_GLU_DIR) - : system/lib/libGLU.a : $(zipFile) : extracted-glu ] ; - HAIKU_GLU_HEADERS = [ FDirName $(HAIKU_GLU_DIR) develop headers os opengl ] ; + ExtractBuildFeatureArchives glu : + file: base $(HAIKU_GLU_URL) + runtime: lib + file: devel $(HAIKU_GLU_DEVEL_URL) + depends: base + library: develop/lib/libGLU.so + headers: develop/headers + ; EnableBuildFeatures glu ; } else { @@ -290,64 +293,37 @@ if $(TARGET_ARCH) = x86 { if $(TARGET_ARCH) = x86 { local zipFile ; if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_MESA_FILE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ; + # TODO:... + HAIKU_MESA_PACKAGE = mesa-9.1.1-x86-gcc4-2013-04-27.zip ; } else { - HAIKU_MESA_FILE = mesa-7.8.2-x86-gcc2-2013-04-28.zip ; + HAIKU_MESA_PACKAGE = mesa-7.8.2-3-x86_gcc2.hpkg ; + HAIKU_MESA_DEVEL_PACKAGE = mesa_devel-7.8.2-3-x86_gcc2.hpkg ; } - zipFile = [ DownloadFile $(HAIKU_MESA_FILE) - : $(baseURL)/$(HAIKU_MESA_FILE) ] ; - - HAIKU_MESA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_MESA_FILE:B) ] ; + HAIKU_MESA_URL = $(hpkgBaseURL)/$(HAIKU_MESA_PACKAGE) ; + HAIKU_MESA_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_MESA_DEVEL_PACKAGE) ; - HAIKU_MESA_HEADERS = [ FDirName $(HAIKU_MESA_DIR) include ] ; - HAIKU_MESA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MESA_DIR) - : include/ : $(zipFile) : extracted-mesa ] ; - - # Base Mesa libraries - HAIKU_MESA_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libmesa.a - : $(zipFile) - : extracted-mesa ] ; - HAIKU_GLAPI_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libglapi.a - : $(zipFile) - : extracted-mesa ] ; - - Depends $(HAIKU_MESA_HEADERS_DEPENDENCY) : $(HAIKU_GLU_HEADERS_DEPENDENCY) ; - Depends $(HAIKU_GLAPI_LIBS) : $(HAIKU_GLU_LIBS) ; + ExtractBuildFeatureArchives mesa : [ FFilterByBuildFeatures + file: devel $(HAIKU_MESA_DEVEL_URL) + mesaLibrary: develop/lib/libmesa.a + glapiLibrary: develop/lib/libglapi.a + headers: develop/headers + privateHeaders: develop/headers/mesa_private + + !gcc2 @{ + glslLibrary: develop/lib/libglsl.a + galliumLibrary: develop/lib/libgallium.a + llvm @{ + galliumLlvmpipeLibrary: develop/lib/libllvmpipe.a + }@ + !llvm @{ + galliumSoftpipeLibrary: develop/lib/libsoftpipe.a + }@ + }@ # !gcc2 + ] ; - # Extended Mesa libraries for newer versions - if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_GLSL_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libglsl.a - : $(zipFile) - : extracted-mesa ] ; - HAIKU_GALLIUM_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libgallium.a - : $(zipFile) - : extracted-mesa ] ; - - if FIsBuildFeatureEnabled(llvm) { - HAIKU_GALLIUM_LLVMPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libllvmpipe.a - : $(zipFile) - : extracted-mesa ] ; - Depends $(HAIKU_GALLIUM_LLVMPIPE_LIB) : $(HAIKU_LLVM_LIBS) ; - } else { - HAIKU_GALLIUM_SOFTPIPE_LIB = [ ExtractArchive $(HAIKU_MESA_DIR) - : - lib.haiku/libsoftpipe.a - : $(zipFile) - : extracted-mesa ] ; - } - } + Depends [ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ] + : $(HAIKU_LLVM_LIBS) ; EnableBuildFeatures mesa ; } else { diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index 31bfa73..779bb2d 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -11,7 +11,8 @@ OptionalPackageDependencies Caya : Expat ; OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Development : DevelopmentBase Perl Zlib-devel ; +OptionalPackageDependencies Development + : DevelopmentBase GLU-devel Perl Zlib-devel ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : GetTextLibintl ; OptionalPackageDependencies GetTextLibintl : LibIconv ; @@ -45,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ; OptionalPackageDependencies Zlib-devel : Zlib ; OptionalPackageDependencies MandatoryPackages - : Bzip Ctags Grep ICU LibSolv Sed Tar Zlib ; + : Bzip Ctags GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index a22e9d3..96caf6a 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -49,6 +49,8 @@ # GetTextLibintl - GetText's libintl # Git - the distributed version control system # GitDoc - documentation for the distributed version control system +# GLU - OpenGL Utilities +# GLU-devel - GLU development files # GPerf - the perfect hash function generator. # Grep - program to search for strings inside a file # Groff - text formatter used for man pages @@ -959,6 +961,30 @@ if [ IsOptionalHaikuImagePackageAdded GitDoc ] { } +# GLU +if [ IsOptionalHaikuImagePackageAdded GLU ] { + if $(TARGET_ARCH) = x86 { + InstallOptionalHaikuImagePackage + $(hpkgBaseURL)/$(HAIKU_GLU_URL) + : system ; + } else { + Echo "No optional package GLU available for $(TARGET_ARCH)" ; + } +} + + +# GLU-devel +if [ IsOptionalHaikuImagePackageAdded GLU-devel ] { + if $(TARGET_ARCH) = x86 { + InstallOptionalHaikuImagePackage + $(hpkgBaseURL)/$(HAIKU_GLU_DEVEL_PACKAGE) + : system ; + } else { + Echo "No optional package GLU-devel available for $(TARGET_ARCH)" ; + } +} + + # GPerf if [ IsOptionalHaikuImagePackageAdded GPerf ] { if $(TARGET_ARCH) = x86 { @@ -1294,6 +1320,16 @@ if [ IsOptionalHaikuImagePackageAdded Mercurial ] { } +# Mesa +if [ IsOptionalHaikuImagePackageAdded Mesa ] { + if $(TARGET_ARCH) = x86 { + InstallOptionalHaikuImagePackage $(HAIKU_MESA_URL) : system ; + } else { + Echo "No optional package Mesa available for $(TARGET_ARCH)" ; + } +} + + # Nano if [ IsOptionalHaikuImagePackageAdded Nano ] { if $(TARGET_ARCH) = x86 { diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index 08f57a5..d576e8a 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -97,20 +97,9 @@ if $(HAIKU_GCC_VERSION[1]) = 2 { } -# libGL.so has GLU (like BeOS) built-in -SYSTEM_LIBS_LIBGL_ALIASES = libGLU.so ; - -if $(TARGET_ARCH) = x86 { - local lib ; - for lib in $(SYSTEM_LIBS_LIBGL_ALIASES) { - AddSymlinkToPackage lib : libGL.so : $(lib) ; - } -} - SYSTEM_LIBS_ALIASES = $(SYSTEM_LIBS_LIBNETWORK_ALIASES) libnetapi.so - $(SYSTEM_LIBS_LIBGL_ALIASES) ; OPTIONAL_LIBS_ALIASES = diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index 763b781..c09f39b 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -22,7 +22,7 @@ AddFilesToPackage lib : $(developmentLibs) ; # library symlinks local lib ; -for lib in $(SYSTEM_LIBS) $(SYSTEM_LIBS_LIBGL_ALIASES) $(developmentLibs) { +for lib in $(SYSTEM_LIBS) $(developmentLibs) { AddSymlinkToPackage $(developDirTokens) lib : /system/lib $(lib:BS) ; local abiVersion = [ on $(lib) return $(HAIKU_LIB_ABI_VERSION) ] ; if $(abiVersion) { @@ -88,13 +88,13 @@ if $(HAIKU_GCC_VERSION[1]) = 2 { # OpenGL headers if $(TARGET_ARCH) = x86 { - local mesaGlHeaders = [ FDirName $(HAIKU_MESA_HEADERS) GL ] ; - mesaGlHeaders = $(mesaGlHeaders:G=$(HAIKU_MESA_HEADERS_DEPENDENCY:G)) ; - Depends $(mesaGlHeaders) : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; + local mesaGlHeaders + = [ FDirName [ BuildFeatureAttribute mesa : headers : path ] GL ] ; + local mesaGlHeadersDependency = [ BuildFeatureAttribute mesa : headers ] ; + mesaGlHeaders = $(mesaGlHeaders:G=$(mesaGlHeadersDependency:G)) ; + Depends $(mesaGlHeaders) : $(mesaGlHeadersDependency) ; CopyDirectoryToPackage $(developDirTokens) headers os opengl : $(mesaGlHeaders) : : : isTarget ; - CopyDirectoryToPackage $(developDirTokens) headers os opengl - : $(HAIKU_GLU_HEADERS_DEPENDENCY) : : : isTarget ; } BuildHaikuPackage $(haikuDevelPackage) : haiku_devel ; diff --git a/src/add-ons/opengl/swpipe/Jamfile b/src/add-ons/opengl/swpipe/Jamfile index 01b3a9a..d741644 100644 --- a/src/add-ons/opengl/swpipe/Jamfile +++ b/src/add-ons/opengl/swpipe/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src add-ons opengl swpipe ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; UsePrivateHeaders interface ; @@ -10,13 +10,14 @@ local sources = GalliumFramebuffer.cpp bitmap_wrapper.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium auxiliary ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium drivers ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src gallium include ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ; +local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ; +UseHeaders [ FDirName $(privateHeaders) gallium auxiliary ] ; +UseHeaders [ FDirName $(privateHeaders) gallium drivers ] ; +UseHeaders [ FDirName $(privateHeaders) gallium include ] ; +UseHeaders [ FDirName $(privateHeaders) mapi ] ; +UseHeaders [ FDirName $(privateHeaders) mesa ] ; AddResources Software\ Renderer : SoftwareRenderer.rdef ; @@ -36,11 +37,11 @@ Addon Software\ Renderer : $(sources) : libGL.so - $(HAIKU_GALLIUM_SOFTPIPE_LIB) - $(HAIKU_GALLIUM_LLVMPIPE_LIB) - $(HAIKU_MESA_LIB) - $(HAIKU_GLSL_LIB) - $(HAIKU_GALLIUM_LIB) + [ BuildFeatureAttribute mesa : galliumSoftpipeLibrary ] + [ BuildFeatureAttribute mesa : galliumLlvmpipeLibrary ] + [ BuildFeatureAttribute mesa : mesaLibrary ] + [ BuildFeatureAttribute mesa : glslLibrary ] + [ BuildFeatureAttribute mesa : galliumLibrary ] $(HAIKU_LLVM_LIBS) be translation stdc++ $(TARGET_LIBSUPC++) ; diff --git a/src/add-ons/opengl/swrast/Jamfile b/src/add-ons/opengl/swrast/Jamfile index 513a251..90e0c0b 100644 --- a/src/add-ons/opengl/swrast/Jamfile +++ b/src/add-ons/opengl/swrast/Jamfile @@ -14,21 +14,22 @@ SubDirC++Flags [ FDefines $(defines) ] ; local sources = MesaSoftwareRenderer.cpp ; UsePrivateHeaders interface ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +UseBuildFeatureHeaders mesa ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ; +UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ; +local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ; +UseHeaders [ FDirName $(privateHeaders) mesa ] ; +UseHeaders [ FDirName $(privateHeaders) mesa main ] ; +UseHeaders [ FDirName $(privateHeaders) mapi ] ; +UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ; AddResources Software\ Rasterizer : MesaSoftwareRenderer.rdef ; Addon Software\ Rasterizer : MesaSoftwareRenderer.cpp : - $(HAIKU_MESA_LIB) - $(HAIKU_GLSL_LIB) + [ BuildFeatureAttribute mesa : mesaLibrary ] + [ BuildFeatureAttribute mesa : glslLibrary ] libGL.so be $(TARGET_LIBSUPC++) ; diff --git a/src/add-ons/opengl/swrast_legacy/Jamfile b/src/add-ons/opengl/swrast_legacy/Jamfile index d9ac110..d5080f1 100644 --- a/src/add-ons/opengl/swrast_legacy/Jamfile +++ b/src/add-ons/opengl/swrast_legacy/Jamfile @@ -28,19 +28,20 @@ if $(TARGET_PLATFORM) != haiku { local sources = MesaSoftwareRenderer.cpp ; UsePrivateHeaders interface ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +UseBuildFeatureHeaders mesa ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ; +UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ; +local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ; +UseHeaders [ FDirName $(privateHeaders) mesa ] ; +UseHeaders [ FDirName $(privateHeaders) mesa main ] ; +UseHeaders [ FDirName $(privateHeaders) mapi ] ; +UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ; # For older versions of Mesa -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa tnl ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa x86 ] ; +UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ; +UseHeaders [ FDirName $(privateHeaders) mesa tnl ] ; +UseHeaders [ FDirName $(privateHeaders) mesa x86 ] ; AddResources Legacy\ Software\ Rasterizer : MesaSoftwareRenderer.rdef ; @@ -48,6 +49,6 @@ AddResources Legacy\ Software\ Rasterizer : MesaSoftwareRenderer.rdef ; Addon Legacy\ Software\ Rasterizer : $(sources) : - $(HAIKU_MESA_LIB) + [ BuildFeatureAttribute mesa : mesaLibrary ] libGL.so be $(TARGET_LIBSUPC++) ; diff --git a/src/add-ons/screen_savers/flurry/Jamfile b/src/add-ons/screen_savers/flurry/Jamfile index b022701..7248fa1 100644 --- a/src/add-ons/screen_savers/flurry/Jamfile +++ b/src/add-ons/screen_savers/flurry/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons screen_savers flurry ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; AddResources Message : Flurry.rdef ; @@ -12,13 +12,17 @@ local sources = Texture.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. ScreenSaver Flurry : $(sources) : be screensaver GL libshared.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + [ BuildFeatureAttribute glu : library ] ; DoCatalogs Flurry : diff --git a/src/add-ons/screen_savers/glife/Jamfile b/src/add-ons/screen_savers/glife/Jamfile index 0fcebd0..4bb4f90 100644 --- a/src/add-ons/screen_savers/glife/Jamfile +++ b/src/add-ons/screen_savers/glife/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons screen_savers glife ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -14,7 +14,10 @@ local sources = GLifeConfig.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. @@ -23,6 +26,7 @@ AddResources GLife : GLife.rdef ; ScreenSaver GLife : $(sources) : be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + [ BuildFeatureAttribute glu : library ] ; DoCatalogs GLife : diff --git a/src/add-ons/screen_savers/gravity/Jamfile b/src/add-ons/screen_savers/gravity/Jamfile index 426435b..ff680d1 100644 --- a/src/add-ons/screen_savers/gravity/Jamfile +++ b/src/add-ons/screen_savers/gravity/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons screen_savers gravity ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; # For GCC2 if $(HAIKU_GCC_VERSION[1]) < 3 { @@ -18,13 +18,18 @@ local sources = main.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. ScreenSaver Gravity : $(sources) - : be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + : + be screensaver GL $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++) + [ BuildFeatureAttribute glu : library ] ; DoCatalogs Gravity : diff --git a/src/apps/3dmov/Jamfile b/src/apps/3dmov/Jamfile index a1bc4c2..8e0d8c3 100644 --- a/src/apps/3dmov/Jamfile +++ b/src/apps/3dmov/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src apps 3dmov ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -19,7 +19,7 @@ local sources = GLUtility.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; Application 3DMov : $(sources) diff --git a/src/apps/glteapot/Jamfile b/src/apps/glteapot/Jamfile index 74e903d..ed78f81 100644 --- a/src/apps/glteapot/Jamfile +++ b/src/apps/glteapot/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src apps glteapot ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -13,11 +13,16 @@ local sources = TeapotApp.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; Application GLTeapot : $(sources) - : be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + : + be GL game $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + [ BuildFeatureAttribute glu : library ] : GLTeapot.rdef ; diff --git a/src/apps/haiku3d/Jamfile b/src/apps/haiku3d/Jamfile index c4588f6..59c3aa2 100644 --- a/src/apps/haiku3d/Jamfile +++ b/src/apps/haiku3d/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src apps haiku3d ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; +UseBuildFeatureHeaders glu ; SEARCH_SOURCE += [ FDirName $(SUBDIR) mesh ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) texture ] ; @@ -30,10 +30,15 @@ local sources = VideoFileTexture.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; Application Haiku3d : $(sources) - : be game GL media translation $(TARGET_LIBSTDC++) + : + be game GL media translation $(TARGET_LIBSTDC++) + [ BuildFeatureAttribute glu : library ] : Haiku3d.rdef ; diff --git a/src/kits/opengl/Jamfile b/src/kits/opengl/Jamfile index 7194f48..c71f217 100644 --- a/src/kits/opengl/Jamfile +++ b/src/kits/opengl/Jamfile @@ -4,6 +4,8 @@ SetSubDirSupportedPlatformsBeOSCompatible ; UsePrivateHeaders interface ; UsePrivateSystemHeaders ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; local sources = GLView.cpp @@ -18,19 +20,18 @@ if $(TARGET_PLATFORM) != haiku { # We need our public GL headers also when not compiling for Haiku. } -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_GLU_HEADERS_DEPENDENCY) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute glu : headers ] ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) include ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa main ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi ] ; -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mapi glapi ] ; +UseHeaders [ BuildFeatureAttribute mesa : headers : path ] ; +local privateHeaders = [ BuildFeatureAttribute mesa : privateHeaders : path ] ; +UseHeaders [ FDirName $(privateHeaders) mesa ] ; +UseHeaders [ FDirName $(privateHeaders) mesa main ] ; +UseHeaders [ FDirName $(privateHeaders) mapi ] ; +UseHeaders [ FDirName $(privateHeaders) mapi glapi ] ; # For older versions of Mesa -UseHeaders [ FDirName $(HAIKU_MESA_DIR) src mesa glapi ] ; +UseHeaders [ FDirName $(privateHeaders) mesa glapi ] ; LINKFLAGS on libGL.so = [ on libGL.so return $(LINKFLAGS) ] -Xlinker --whole-archive -Xlinker --no-undefined ; @@ -43,10 +44,10 @@ if $(HAIKU_GCC_VERSION[1]) < 3 { SharedLibrary libGL.so : $(sources) : # GLU - $(HAIKU_GLU_LIBS) + [ BuildFeatureAttribute glu : library ] # GLAPI Dispatch code (from Mesa buildpackage) - $(HAIKU_GLAPI_LIB) + [ BuildFeatureAttribute mesa : glapiLibrary ] # External libraries: game # BWindowScreen needed by BGLScreen stub class diff --git a/src/libs/glut/Jamfile b/src/libs/glut/Jamfile index 54750c2..0d30470 100644 --- a/src/libs/glut/Jamfile +++ b/src/libs/glut/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src libs glut ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -57,12 +57,15 @@ if $(HAIKU_GCC_VERSION[1]) < 3 { # Ensure Mesa dependency is met -Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] - : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sourcesCc) $(sourcesCpp) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; SharedLibrary libglut.so : $(sourcesCpp) $(sourcesCc) : GL game be $(TARGET_LIBSTDC++) + [ BuildFeatureAttribute glu : library ] ; diff --git a/src/tests/kits/opengl/demos/gears/Jamfile b/src/tests/kits/opengl/demos/gears/Jamfile index 9cc394c..bd1998c 100644 --- a/src/tests/kits/opengl/demos/gears/Jamfile +++ b/src/tests/kits/opengl/demos/gears/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src tests kits opengl demos gears ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -15,7 +15,7 @@ local sources = gears.c ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; SimpleTest GLGears : diff --git a/src/tests/kits/opengl/direct_mode/Jamfile b/src/tests/kits/opengl/direct_mode/Jamfile index de41e03..8929ed5 100644 --- a/src/tests/kits/opengl/direct_mode/Jamfile +++ b/src/tests/kits/opengl/direct_mode/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src tests kits opengl direct_mode ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -14,7 +14,7 @@ local sources = GLDirectMode.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; SimpleTest GLDirectMode : $(sources) diff --git a/src/tests/kits/opengl/glinfo/Jamfile b/src/tests/kits/opengl/glinfo/Jamfile index 2c7ce84..3c37dc2 100644 --- a/src/tests/kits/opengl/glinfo/Jamfile +++ b/src/tests/kits/opengl/glinfo/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src tests kits opengl glinfo ; -SubDirSysHdrs $(HAIKU_GLU_HEADERS) ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders glu ; +UseBuildFeatureHeaders mesa ; UsePrivateHeaders interface ; @@ -14,7 +14,10 @@ local sources = GearsView.cpp ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : + [ BuildFeatureAttribute glu : headers ] + [ BuildFeatureAttribute mesa : headers ] + ; # Dependency needed to trigger downloading/unzipping the package before # compiling the files. @@ -24,6 +27,7 @@ Preference GLInfo : be GL libglut.so translation libcolumnlistview.a $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSUPC++) + [ BuildFeatureAttribute glu : library ] : GLInfo.rdef ; diff --git a/src/tests/kits/opengl/glsl/Jamfile b/src/tests/kits/opengl/glsl/Jamfile index 4a17e83..2709530 100644 --- a/src/tests/kits/opengl/glsl/Jamfile +++ b/src/tests/kits/opengl/glsl/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src tests kits opengl glsl ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -14,7 +14,8 @@ local shadersources = shaderutil.c ; -Includes [ FGristFiles $(shadersources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(shadersources) ] + : [ BuildFeatureAttribute mesa : headers ] ; StaticLibrary libshaderutil.a : $(shadersources) diff --git a/src/tests/kits/opengl/glut/game_mode/Jamfile b/src/tests/kits/opengl/glut/game_mode/Jamfile index ddcc55f..23849dc 100644 --- a/src/tests/kits/opengl/glut/game_mode/Jamfile +++ b/src/tests/kits/opengl/glut/game_mode/Jamfile @@ -1,5 +1,5 @@ SubDir HAIKU_TOP src tests kits opengl glut game_mode ; -SubDirSysHdrs $(HAIKU_MESA_HEADERS) ; +UseBuildFeatureHeaders mesa ; SetSubDirSupportedPlatformsBeOSCompatible ; @@ -14,7 +14,7 @@ local sources = game_mode.c ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_MESA_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles $(sources) ] : [ BuildFeatureAttribute mesa : headers ] ; SimpleTest GLUTGameMode : $(sources) ############################################################################ Commit: 14d5e307b44211346880ca8255162dbd5dd773ff Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 19:31:44 2013 UTC Update ffmpeg package and its requirements Also make use of new build feature rules. ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 940d171..815dbab 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -335,120 +335,53 @@ if $(TARGET_ARCH) = x86 { local ffmpegBaseURL = $(baseURL)/lib ; if $(TARGET_ARCH) = x86 { if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ; - HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ; + # TODO:... + HAIKU_FFMPEG_PACKAGE = ffmpeg-0.10.2-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_SPEEX_PACKAGE = speex-1.2rc1-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_LIBTHEORA_PACKAGE = libtheora-1.1.1-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_LIBVORBIS_PACKAGE = libvorbis-1.3.2-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_LIBOGG_PACKAGE = libogg-1.3.0-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_LIBVPX_PACKAGE = libvpx-1.0.0-r1a4-x86-gcc4-2012-09-02.zip ; } else { - HAIKU_FFMPEG_FILE = ffmpeg-0.10.2-r1a4-x86-gcc2-2012-08-30.zip ; - HAIKU_SPEEX_FILE = speex-1.2rc1-r1a4-x86-gcc2-2012-08-29.zip ; - HAIKU_LIBTHEORA_FILE = libtheora-1.1.1-r1a4-x86-gcc2-2012-08-29.zip ; - HAIKU_LIBVORBIS_FILE = libvorbis-1.3.2-r1a4-x86-gcc2-2012-08-29.zip ; - HAIKU_LIBOGG_FILE = libogg-1.3.0-r1a4-x86-gcc2-2012-08-29.zip ; - HAIKU_LIBVPX_FILE = libvpx-1.0.0-r1a4-x86-gcc2-2012-08-29.zip ; + HAIKU_FFMPEG_PACKAGE = ffmpeg-0.10.2-1-x86_gcc2.hpkg ; + HAIKU_FFMPEG_DEVEL_PACKAGE = ffmpeg_devel-0.10.2-1-x86_gcc2.hpkg ; + HAIKU_SPEEX_PACKAGE = speex-1.2~rc1-1-x86_gcc2.hpkg ; + HAIKU_SPEEX_DEVEL_PACKAGE = speex_devel-1.2~rc1-1-x86_gcc2.hpkg ; + HAIKU_LIBTHEORA_PACKAGE = libtheora-1.1.1-1-x86_gcc2.hpkg ; + HAIKU_LIBTHEORA_DEVEL_PACKAGE = libtheora_devel-1.1.1-1-x86_gcc2.hpkg ; + HAIKU_LIBVORBIS_PACKAGE = libvorbis-1.3.2-1-x86_gcc2.hpkg ; + HAIKU_LIBVORBIS_DEVEL_PACKAGE = libvorbis_devel-1.3.2-1-x86_gcc2.hpkg ; + HAIKU_LIBOGG_PACKAGE = libogg-1.3.0-1-x86_gcc2.hpkg ; + HAIKU_LIBOGG_DEVEL_PACKAGE = libogg_devel-1.3.0-1-x86_gcc2.hpkg ; + HAIKU_LIBVPX_PACKAGE = libvpx-1.0.0-1-x86_gcc2.hpkg ; + HAIKU_LIBVPX_DEVEL_PACKAGE = libvpx_devel-1.0.0-1-x86_gcc2.hpkg ; } - local ffmpegZipFile = [ DownloadFile $(HAIKU_FFMPEG_FILE) - : $(ffmpegBaseURL)/$(HAIKU_FFMPEG_FILE) ] ; - local speexZipFile = [ DownloadFile $(HAIKU_SPEEX_FILE) - : $(ffmpegBaseURL)/$(HAIKU_SPEEX_FILE) ] ; - local libtheoraZipFile = [ DownloadFile $(HAIKU_LIBTHEORA_FILE) - : $(ffmpegBaseURL)/$(HAIKU_LIBTHEORA_FILE) ] ; - local libvorbisZipFile = [ DownloadFile $(HAIKU_LIBVORBIS_FILE) - : $(ffmpegBaseURL)/$(HAIKU_LIBVORBIS_FILE) ] ; - local liboggZipFile = [ DownloadFile $(HAIKU_LIBOGG_FILE) - : $(ffmpegBaseURL)/$(HAIKU_LIBOGG_FILE) ] ; - local libvpxZipFile = [ DownloadFile $(HAIKU_LIBVPX_FILE) - : $(ffmpegBaseURL)/$(HAIKU_LIBVPX_FILE) ] ; - - HAIKU_FFMPEG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_FFMPEG_FILE:B) ] ; - HAIKU_SPEEX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_SPEEX_FILE:B) ] ; - HAIKU_LIBTHEORA_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBTHEORA_FILE:B) ] ; - HAIKU_LIBVORBIS_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBVORBIS_FILE:B) ] ; - HAIKU_LIBOGG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBOGG_FILE:B) ] ; - HAIKU_LIBVPX_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBVPX_FILE:B) ] ; - - HAIKU_FFMPEG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_FFMPEG_DIR) - : common/include/ : $(ffmpegZipFile) : extracted-ffmpeg ] ; - HAIKU_SPEEX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_SPEEX_DIR) - : common/include/ : $(speexZipFile) : extracted-speex ] ; - HAIKU_LIBTHEORA_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBTHEORA_DIR) - : common/include/ : $(libtheoraZipFile) : extracted-libtheora ] ; - HAIKU_LIBVORBIS_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBVORBIS_DIR) - : common/include/ : $(libvorbisZipFile) : extracted-libvorbis ] ; - HAIKU_LIBOGG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBOGG_DIR) - : common/include/ : $(liboggZipFile) : extracted-libogg ] ; - HAIKU_LIBVPX_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBVPX_DIR) - : common/include/ : $(libvpxZipFile) : extracted-libvpx ] ; - - HAIKU_FFMPEG_LIBS = [ ExtractArchive $(HAIKU_FFMPEG_DIR) - : - common/lib/libavformat.a - common/lib/libavcodec.a - common/lib/libavdevice.a - common/lib/libavfilter.a - common/lib/libswscale.a - common/lib/libavutil.a - : $(ffmpegZipFile) - : extracted-ffmpeg ] ; - Depends $(HAIKU_FFMPEG_LIBS) : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ; - - HAIKU_SPEEX_LIBS = [ ExtractArchive $(HAIKU_SPEEX_DIR) - : - common/lib/libspeex.a - : $(speexZipFile) - : extracted-speex ] ; - Depends $(HAIKU_SPEEX_LIBS) : $(HAIKU_SPEEX_HEADERS_DEPENDENCY) ; - - HAIKU_LIBTHEORA_LIBS = [ ExtractArchive $(HAIKU_LIBTHEORA_DIR) - : - common/lib/libtheora.a - common/lib/libtheoradec.a - common/lib/libtheoraenc.a - : $(libtheoraZipFile) - : extracted-libtheora ] ; - Depends $(HAIKU_LIBTHEORA_LIBS) : $(HAIKU_LIBTHEORA_HEADERS_DEPENDENCY) ; - - - HAIKU_LIBVORBIS_LIBS = [ ExtractArchive $(HAIKU_LIBVORBIS_DIR) - : - common/lib/libvorbis.a - common/lib/libvorbisenc.a - : $(libvorbisZipFile) - : extracted-libvorbis ] ; - Depends $(HAIKU_LIBVORBIS_LIBS) : $(HAIKU_LIBVORBIS_HEADERS_DEPENDENCY) ; - - - HAIKU_LIBOGG_LIBS = [ ExtractArchive $(HAIKU_LIBOGG_DIR) - : - common/lib/libogg.a - : $(liboggZipFile) - : extracted-libogg ] ; - Depends $(HAIKU_LIBOGG_LIBS) : $(HAIKU_LIBOGG_HEADERS_DEPENDENCY) ; + local ffmpegLibs = libavformat.so libavcodec.so libavdevice.so + libavfilter.so libswscale.so libavutil.so ; + local speexLibs = libspeex.so ; + local libtheoraLibs = libtheora.so libtheoradec.so libtheoraenc.so ; + local libvorbisLibs = libvorbis.so libvorbisenc.so ; + local liboggLibs = libogg.so ; + local libvpxLibs = libvpx.so ; + + local feature ; + for feature in ffmpeg speex libtheora libvorbis libogg libvpx { + HAIKU_$(feature:U)_URL = $(hpkgBaseURL)/$(HAIKU_$(feature:U)_PACKAGE) ; + HAIKU_$(feature:U)_DEVEL_URL + = $(hpkgBaseURL)/$(HAIKU_$(feature:U)_DEVEL_PACKAGE) ; + + ExtractBuildFeatureArchives $(feature) : + file: base $(HAIKU_$(feature:U)_URL) + runtime: lib + file: devel $(HAIKU_$(feature:U)_DEVEL_URL) + depends: base + libraries: develop/lib/$($(feature)Libs) + headers: develop/headers + ; - HAIKU_LIBVPX_LIBS = [ ExtractArchive $(HAIKU_LIBVPX_DIR) - : - common/lib/libvpx.a - : $(libvpxZipFile) - : extracted-libvpx ] ; - Depends $(HAIKU_LIBVPX_LIBS) : $(HAIKU_LIBVPX_HEADERS_DEPENDENCY) ; - - HAIKU_FFMPEG_HEADERS = [ FDirName $(HAIKU_FFMPEG_DIR) common include ] ; - HAIKU_SPEEX_HEADERS = [ FDirName $(HAIKU_SPEEX_DIR) common include ] ; - HAIKU_LIBTHEORA_HEADERS = [ FDirName $(HAIKU_LIBTHEORA_DIR) common include ] ; - HAIKU_LIBVORBIS_HEADERS = [ FDirName $(HAIKU_LIBVORBIS_DIR) common include ] ; - HAIKU_LIBOGG_HEADERS = [ FDirName $(HAIKU_LIBOGG_DIR) common include ] ; - HAIKU_LIBVPX_HEADERS = [ FDirName $(HAIKU_LIBVPX_DIR) common include ] ; - - EnableBuildFeatures ffmpeg ; + EnableBuildFeatures $(feature) ; + } } else { Echo "FFMpeg support not available on $(TARGET_ARCH)" ; } diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index 779bb2d..75be60e 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -12,7 +12,7 @@ OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; OptionalPackageDependencies Development - : DevelopmentBase GLU-devel Perl Zlib-devel ; + : DevelopmentBase FFMpeg-devel GLU-devel Perl Zlib-devel ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : GetTextLibintl ; OptionalPackageDependencies GetTextLibintl : LibIconv ; @@ -46,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ; OptionalPackageDependencies Zlib-devel : Zlib ; OptionalPackageDependencies MandatoryPackages - : Bzip Ctags GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; + : Bzip Ctags FFMpeg GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index 96caf6a..dec932b 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -44,6 +44,8 @@ # Droid - Font family from Google's Android project # Expat - XML parsing libraries # Fastdep - fast dependency generator for C/C++ files +# FFMpeg - audio/video library +# FFMpeg-devel - FFMpeg development files # friss - RSS/ATOM/... feeds reader # GetText - a framework to help produce multi-lingual messages. # GetTextLibintl - GetText's libintl @@ -858,6 +860,34 @@ if [ IsOptionalHaikuImagePackageAdded Fastdep ] { } +# FFMpeg +if [ IsOptionalHaikuImagePackageAdded FFMpeg ] { + if $(TARGET_ARCH) = x86 { + local feature ; + for feature in ffmpeg speex libtheora libvorbis libogg libvpx { + InstallOptionalHaikuImagePackage $(HAIKU_$(feature:U)_URL) + : system ; + } + } else { + Echo "No optional package FFMpeg available for $(TARGET_ARCH)" ; + } +} + + +# FFMpeg-devel +if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] { + if $(TARGET_ARCH) = x86 { + local feature ; + for feature in ffmpeg speex libtheora libvorbis libogg libvpx { + InstallOptionalHaikuImagePackage $(HAIKU_$(feature:U)_DEVEL_URL) + : system ; + } + } else { + Echo "No optional package FFMpeg-devel available for $(TARGET_ARCH)" ; + } +} + + # friss if [ IsOptionalHaikuImagePackageAdded friss ] { if $(TARGET_ARCH) != x86 { diff --git a/src/add-ons/media/media-add-ons/dvb/Jamfile b/src/add-ons/media/media-add-ons/dvb/Jamfile index a0d0e81..0ff7b39 100644 --- a/src/add-ons/media/media-add-ons/dvb/Jamfile +++ b/src/add-ons/media/media-add-ons/dvb/Jamfile @@ -2,10 +2,11 @@ SubDir HAIKU_TOP src add-ons media media-add-ons dvb ; UsePrivateHeaders drivers ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavcodec ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavformat ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavutil ] ; +local ffmpegHeaders = [ BuildFeatureAttribute ffmpeg : headers : path ] ; +UseHeaders $(ffmpegHeaders) ; +UseHeaders [ FDirName $(ffmpegHeaders) libavcodec ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavformat ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavutil ] ; Addon dvb.media_addon : @@ -21,5 +22,5 @@ Addon dvb.media_addon : : be media $(TARGET_LIBSUPC++) ; -Includes [ FGristFiles MediaFormat.cpp ] : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ; - +Includes [ FGristFiles MediaFormat.cpp ] + : [ BuildFeatureAttribute ffmpeg : headers ] ; diff --git a/src/add-ons/media/plugins/ffmpeg/Jamfile b/src/add-ons/media/plugins/ffmpeg/Jamfile index 5320037..888668f 100644 --- a/src/add-ons/media/plugins/ffmpeg/Jamfile +++ b/src/add-ons/media/plugins/ffmpeg/Jamfile @@ -25,16 +25,18 @@ local sources = ; -SubDirSysHdrs $(HAIKU_FFMPEG_HEADERS) ; -Includes [ FGristFiles $(sources) ] : $(HAIKU_FFMPEG_HEADERS_DEPENDENCY) ; +UseBuildFeatureHeaders ffmpeg ; +Includes [ FGristFiles $(sources) ] + : [ BuildFeatureAttribute ffmpeg : headers ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavcodec ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavdevice ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavfilter ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavformat ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libavutil ] ; -UseHeaders [ FDirName $(HAIKU_FFMPEG_HEADERS) libswscale ] ; +local ffmpegHeaders = [ BuildFeatureAttribute ffmpeg : headers : path ] ; +UseHeaders $(ffmpegHeaders) ; +UseHeaders [ FDirName $(ffmpegHeaders) libavcodec ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavdevice ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavfilter ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavformat ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libavutil ] ; +UseHeaders [ FDirName $(ffmpegHeaders) libswscale ] ; Addon ffmpeg : $(sources) @@ -45,13 +47,13 @@ Addon ffmpeg : : # FFmpeg libraries (from FFmpeg optional package): - $(HAIKU_FFMPEG_LIBS) + [ BuildFeatureAttribute ffmpeg : libraries ] - $(HAIKU_SPEEX_LIBS) - $(HAIKU_LIBTHEORA_LIBS) - $(HAIKU_LIBVORBIS_LIBS) - $(HAIKU_LIBOGG_LIBS) - $(HAIKU_LIBVPX_LIBS) + [ BuildFeatureAttribute speex : libraries ] + [ BuildFeatureAttribute libtheora : libraries ] + [ BuildFeatureAttribute libvorbis : libraries ] + [ BuildFeatureAttribute libogg : libraries ] + [ BuildFeatureAttribute libvpx : libraries ] libbz2_ffmpeg.a be ############################################################################ Commit: e2c74e414c67463c2feadce97df7b2c2eb8a25f7 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 19:34:05 2013 UTC Remove unused MikMod build feature ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 815dbab..fc4f65a 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -387,39 +387,6 @@ if $(TARGET_ARCH) = x86 { } -# MikMod -local mikmodBaseURL = http://haiku-files.org/files/optional-packages/lib ; -if $(TARGET_ARCH) = x86 { - if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc4-2012-09-02.zip ; - } else { - HAIKU_MIKMOD_FILE = libmikmod-3.1.11-r1a4-x86-gcc2-2012-08-29.zip ; - } - - local mikmodZipFile = [ DownloadFile $(HAIKU_MIKMOD_FILE) - : $(mikmodBaseURL)/$(HAIKU_MIKMOD_FILE) ] ; - - HAIKU_MIKMOD_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_MIKMOD_FILE:B) ] ; - - HAIKU_MIKMOD_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_MIKMOD_DIR) - : common/include/ : $(mikmodZipFile) : extracted-mikmod ] ; - - HAIKU_MIKMOD_LIBS = [ ExtractArchive $(HAIKU_MIKMOD_DIR) - : - common/lib/libmikmod.a - : $(mikmodZipFile) - : extracted-ffmpeg ] ; - Depends $(HAIKU_MIKMOD_LIBS) : $(HAIKU_MIKMOD_HEADERS_DEPENDENCY) ; - - HAIKU_MIKMOD_HEADERS = [ FDirName $(HAIKU_MIKMOD_DIR) common include ] ; - - EnableBuildFeatures mikmod ; -} else { - Echo "MikMod support not available on $(TARGET_ARCH)" ; -} - - # Freetype local freetypeBaseURL = $(baseURL)/lib ; if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm { ############################################################################ Commit: 29f8805f6c70f1c819eb58ac2220647d8e40d6e7 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 20:06:29 2013 UTC Update freetype package Also use the new build feature rules ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index fc4f65a..073404f 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -389,46 +389,31 @@ if $(TARGET_ARCH) = x86 { # Freetype local freetypeBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm { +if $(TARGET_ARCH) in arm ppc x86 x86_64 { if $(TARGET_ARCH) = arm { - HAIKU_FREETYPE_FILE = freetype-2.4.9-arm-2012-11-21.zip ; + HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-arm-2012-11-21.zip ; } else if $(TARGET_ARCH) = ppc { - HAIKU_FREETYPE_FILE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ; + HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-ppc-gcc4-2012-06-26.zip ; } else if $(TARGET_ARCH) = x86_64 { - HAIKU_FREETYPE_FILE = freetype-2.4.9-x86_64-2012-08-04.zip ; + HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-x86_64-2012-08-04.zip ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ; + HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-r1a4-x86-gcc4-2012-09-02.zip ; } else { - HAIKU_FREETYPE_FILE = freetype-2.4.9-r1a4-x86-gcc2-2012-08-28.zip ; + HAIKU_FREETYPE_PACKAGE = freetype-2.4.9-1-x86_gcc2.hpkg ; + HAIKU_FREETYPE_DEVEL_PACKAGE = freetype_devel-2.4.9-1-x86_gcc2.hpkg ; } - local freetypeZipFile = [ DownloadFile $(HAIKU_FREETYPE_FILE) - : $(freetypeBaseURL)/$(HAIKU_FREETYPE_FILE) ] ; - - HAIKU_FREETYPE_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_FREETYPE_FILE:B) ] ; + HAIKU_FREETYPE_URL = $(hpkgBaseURL)/$(HAIKU_FREETYPE_PACKAGE) ; + HAIKU_FREETYPE_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_FREETYPE_DEVEL_PACKAGE) ; - HAIKU_FREETYPE_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_FREETYPE_DIR) - : develop/headers/3rdparty/freetype2 : $(freetypeZipFile) - : extracted-freetype ] ; - - HAIKU_FREETYPE_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR) - : - common/lib/libfreetype.so - : $(freetypeZipFile) - : extracted-freetype ] ; - HAIKU_FREETYPE_CURRENT_LIB = [ ExtractArchive $(HAIKU_FREETYPE_DIR) - : - common/lib/libfreetype.so.6.8.1 - : $(freetypeZipFile) - : extracted-freetype ] ; - Depends $(HAIKU_FREETYPE_LIB) $(HAIKU_FREETYPE_CURRENT_LIB) : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; - - HAIKU_FREETYPE_CURRENT_LINK = libfreetype.so.6 ; - - HAIKU_FREETYPE_HEADERS = [ FDirName $(HAIKU_FREETYPE_DIR) develop - headers 3rdparty ] [ FDirName $(HAIKU_FREETYPE_DIR) develop - headers 3rdparty freetype2 ] ; + ExtractBuildFeatureArchives freetype : + file: base $(HAIKU_FREETYPE_URL) + runtime: lib + file: devel $(HAIKU_FREETYPE_DEVEL_URL) + depends: base + library: develop/lib/libfreetype.so + headers: develop/headers develop/headers/freetype2 + ; EnableBuildFeatures freetype ; } else { diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index a7ab8cb..685e5dd 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -78,7 +78,6 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures $(HAIKU_JPEG_CURRENT_LIB) $(HAIKU_LIBPNG_CURRENT_LIB) - $(HAIKU_FREETYPE_CURRENT_LIB) libalm.so libfluidsynth.so libilmimf.so diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index 75be60e..e71e6e1 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -12,7 +12,7 @@ OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; OptionalPackageDependencies Development - : DevelopmentBase FFMpeg-devel GLU-devel Perl Zlib-devel ; + : DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Perl Zlib-devel ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : GetTextLibintl ; OptionalPackageDependencies GetTextLibintl : LibIconv ; @@ -46,4 +46,4 @@ OptionalPackageDependencies XZ-Utils : Tar ; OptionalPackageDependencies Zlib-devel : Zlib ; OptionalPackageDependencies MandatoryPackages - : Bzip Ctags FFMpeg GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; + : Bzip Ctags FFMpeg FreeType GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index dec932b..c8b84c3 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -46,6 +46,8 @@ # Fastdep - fast dependency generator for C/C++ files # FFMpeg - audio/video library # FFMpeg-devel - FFMpeg development files +# FreeType - A Free, High-Quality, and Portable Font Engine +# FreeType-devel - FreeType development files # friss - RSS/ATOM/... feeds reader # GetText - a framework to help produce multi-lingual messages. # GetTextLibintl - GetText's libintl @@ -888,6 +890,26 @@ if [ IsOptionalHaikuImagePackageAdded FFMpeg-devel ] { } +# FreeType +if [ IsOptionalHaikuImagePackageAdded FreeType ] { + if $(TARGET_ARCH) in arm ppc x86 x86_64 { + InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_URL) : system ; + } else { + Echo "No optional package FreeType available for $(TARGET_ARCH)" ; + } +} + + +# FreeType-devel +if [ IsOptionalHaikuImagePackageAdded FreeType-devel ] { + if $(TARGET_ARCH) in arm ppc x86 x86_64 { + InstallOptionalHaikuImagePackage $(HAIKU_FREETYPE_DEVEL_URL) : system ; + } else { + Echo "No optional package FreeType-devel available for $(TARGET_ARCH)" ; + } +} + + # friss if [ IsOptionalHaikuImagePackageAdded friss ] { if $(TARGET_ARCH) != x86 { diff --git a/build/jam/packages/Haiku b/build/jam/packages/Haiku index d576e8a..ba54ac0 100644 --- a/build/jam/packages/Haiku +++ b/build/jam/packages/Haiku @@ -103,7 +103,6 @@ SYSTEM_LIBS_ALIASES = ; OPTIONAL_LIBS_ALIASES = - libfreetype.so libjpeg.so libpng.so libz.so @@ -111,12 +110,6 @@ OPTIONAL_LIBS_ALIASES = # TODO: Remove the following symlinks when the libraries have been packaged # properly! -# libfreetype.so links to the current freetype lib -AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LIB:BS) - : $(HAIKU_FREETYPE_CURRENT_LINK) : : true ; -AddSymlinkToPackage lib : $(HAIKU_FREETYPE_CURRENT_LINK) - : libfreetype.so : : true ; - # libpng.so links to the current libpng AddSymlinkToPackage lib : $(HAIKU_LIBPNG_CURRENT_LIB:BS) : $(HAIKU_LIBPNG_CURRENT_LINK) : : true ; diff --git a/build/jam/packages/HaikuDevel b/build/jam/packages/HaikuDevel index c09f39b..55e1685 100644 --- a/build/jam/packages/HaikuDevel +++ b/build/jam/packages/HaikuDevel @@ -40,8 +40,8 @@ AddFilesToPackage $(developDirTokens) lib : libposix_error_mapper.a ; # ABI independent stuff -# scripts: freetype-config, setgcc -local scripts = freetype-config setgcc ; +# scripts: setgcc +local scripts = setgcc ; SEARCH on $(scripts) = [ FDirName $(HAIKU_TOP) data bin ] ; AddFilesToPackage bin : $(scripts) ; @@ -71,9 +71,6 @@ AddHeaderDirectoryToPackage compatibility gnu : gnu ; AddHeaderDirectoryToPackage libs termcap : 3rdparty ; AddHeaderDirectoryToPackage libs tiff : 3rdparty ; -CopyDirectoryToPackage develop headers 3rdparty - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) - : freetype2 : : isTarget ; CopyDirectoryToPackage develop headers : $(HAIKU_JPEG_HEADERS_DEPENDENCY) : 3rdparty : : isTarget ; CopyDirectoryToPackage develop headers : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) diff --git a/data/bin/freetype-config b/data/bin/freetype-config deleted file mode 100755 index 34c5d5b..0000000 --- a/data/bin/freetype-config +++ /dev/null @@ -1,160 +0,0 @@ -#! /bin/sh -# -# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009 by -# David Turner, Robert Wilhelm, and Werner Lemberg. -# -# This file is part of the FreeType project, and may only be used, modified, -# and distributed under the terms of the FreeType project license, -# LICENSE.TXT. By continuing to use, modify, or distribute this file you -# indicate that you have read the license and understand and accept it -# fully. - -prefix=/boot/common -exec_prefix=${prefix} -exec_prefix_set=no -includedir=/boot/develop/headers/3rdparty -libdir=${exec_prefix}/lib -enable_shared= -wl=-Wl, -hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' - -usage() -{ - cat <<EOF -Usage: freetype-config [OPTION]... -Get FreeType compilation and linking information. - -Options: - --prefix display \`--prefix' value used for building the - FreeType library - --prefix=PREFIX override \`--prefix' value with PREFIX - --exec-prefix display \`--exec-prefix' value used for building - the FreeType library - --exec-prefix=EPREFIX override \`--exec-prefix' value with EPREFIX - --version display libtool version of the FreeType library - --ftversion display FreeType version number - --libs display flags for linking with the FreeType library - --libtool display library name for linking with libtool - --cflags display flags for compiling with the FreeType - library -EOF - exit $1 -} - -if test $# -eq 0 ; then - usage 1 1>&2 -fi - -while test $# -gt 0 ; do - case "$1" in - -*=*) - optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` - ;; - *) - optarg= - ;; - esac - - case $1 in - --prefix=*) - prefix=$optarg - local_prefix=yes - ;; - --prefix) - echo_prefix=yes - ;; - --exec-prefix=*) - exec_prefix=$optarg - exec_prefix_set=yes - local_prefix=yes - ;; - --exec-prefix) - echo_exec_prefix=yes - ;; - --version) - echo 9.20.3 - exit 0 - ;; - --ftversion) - echo_ft_version=yes - ;; - --cflags) - echo_cflags=yes - ;; - --libs) - echo_libs=yes - ;; - --libtool) - echo_libtool=yes - ;; - *) - usage 1 1>&2 - ;; - esac - shift -done - -if test "$local_prefix" = "yes" ; then - if test "$exec_prefix_set" != "yes" ; then - exec_prefix=$prefix - fi -fi - -if test "$echo_prefix" = "yes" ; then - echo $prefix -fi - -if test "$echo_exec_prefix" = "yes" ; then - echo $exec_prefix -fi - -if test "$exec_prefix_set" = "yes" ; then - libdir=$exec_prefix/lib -else - if test "$local_prefix" = "yes" ; then - includedir=$prefix/include - libdir=$prefix/lib - fi -fi - -if test "$echo_ft_version" = "yes" ; then - major=`grep define $includedir/freetype/freetype.h \ - | grep FREETYPE_MAJOR \ - | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'` - minor=`grep define $includedir/freetype/freetype.h \ - | grep FREETYPE_MINOR \ - | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'` - patch=`grep define $includedir/freetype/freetype.h \ - | grep FREETYPE_PATCH \ - | sed 's/.*[ ]\([0-9][0-9]*\).*/\1/'` - echo $major.$minor.$patch -fi - -if test "$echo_cflags" = "yes" ; then - cflags="-I$includedir/freetype2" - if test "$includedir" != "/usr/include" ; then - echo $cflags -I$includedir - else - echo $cflags - fi -fi - -if test "$echo_libs" = "yes" ; then - rpath= - if test "$enable_shared" = "yes" ; then - eval "rpath=\"$hardcode_libdir_flag_spec\"" - fi - libs="-lfreetype -lz " - if test "$libdir" != "/usr/lib" && test "$libdir" != "/usr/lib64"; then - echo -L$libdir $rpath $libs - else - echo $libs - fi -fi - -if test "$echo_libtool" = "yes" ; then - convlib="libfreetype.la" - echo $libdir/$convlib -fi - -# EOF diff --git a/src/add-ons/decorators/BeDecorator/Jamfile b/src/add-ons/decorators/BeDecorator/Jamfile index b4acfb0..9db5fec 100644 --- a/src/add-ons/decorators/BeDecorator/Jamfile +++ b/src/add-ons/decorators/BeDecorator/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons decorators BeDecorator ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; @@ -10,9 +10,8 @@ UsePrivateHeaders kernel ; AddResources ClassicBe : resources.rdef ; -#TODO: See #8716, hrev44313 for ft2build.h: No such file or directory -#Includes [ FGristFiles BeDecorator.cpp ] -# : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles BeDecorator.cpp ] + : [ BuildFeatureAttribute freetype : headers ] ; Addon ClassicBe : BeDecorator.cpp diff --git a/src/add-ons/decorators/MacDecorator/Jamfile b/src/add-ons/decorators/MacDecorator/Jamfile index 88ffb91..be8c387 100644 --- a/src/add-ons/decorators/MacDecorator/Jamfile +++ b/src/add-ons/decorators/MacDecorator/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons decorators MacDecorator ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app decorator ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; @@ -13,7 +13,7 @@ UsePrivateHeaders kernel ; AddResources MacDecorator : resources.rdef ; Includes [ FGristFiles MacDecorator.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; Addon MacDecorator : MacDecorator.cpp diff --git a/src/add-ons/decorators/WinDecorator/Jamfile b/src/add-ons/decorators/WinDecorator/Jamfile index b472e59..07695da 100644 --- a/src/add-ons/decorators/WinDecorator/Jamfile +++ b/src/add-ons/decorators/WinDecorator/Jamfile @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons decorators WinDecorator ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; @@ -10,9 +10,8 @@ UsePrivateHeaders kernel ; AddResources WinDecorator : resources.rdef ; -#TODO: See #8716, hrev44313 for ft2build.h: No such file or directory -#Includes [ FGristFiles WinDecorator.cpp ] -# : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles WinDecorator.cpp ] + : [ BuildFeatureAttribute freetype : headers ] ; Addon WinDecorator : WinDecorator.cpp diff --git a/src/preferences/appearance/Jamfile b/src/preferences/appearance/Jamfile index ca3eb7d..90a2101 100644 --- a/src/preferences/appearance/Jamfile +++ b/src/preferences/appearance/Jamfile @@ -1,10 +1,10 @@ SubDir HAIKU_TOP src preferences appearance ; UsePrivateHeaders app interface [ FDirName servers app ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; Includes [ FGristFiles AntialiasingSettingsView.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; Preference Appearance : APRMain.cpp diff --git a/src/servers/app/Jamfile b/src/servers/app/Jamfile index 697ef0c..2579230 100644 --- a/src/servers/app/Jamfile +++ b/src/servers/app/Jamfile @@ -30,13 +30,13 @@ local font_src = FontStyle.cpp ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; Includes [ FGristFiles AppServer.cpp BitmapManager.cpp ClientMemoryAllocator.cpp Desktop.cpp DesktopSettings.cpp DrawState.cpp ServerApp.cpp ServerBitmap.cpp ServerFont.cpp ServerPicture.cpp ServerWindow.cpp View.cpp Window.cpp WorkspacesView.cpp $(decorator_src) $(font_src) ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; local BROKEN_64 = ; @@ -96,7 +96,8 @@ Server app_server : : libtranslation.so libbe.so libbnetapi.so libaslocal.a $(BROKEN_64)libasremote.a $(BROKEN_64)libashtml5.a - libasdrawing.a libpainter.a libagg.a $(HAIKU_FREETYPE_LIB) + libasdrawing.a libpainter.a libagg.a + [ BuildFeatureAttribute freetype : library ] libstackandtile.a liblinprog.a libtextencoding.so libshared.a $(TARGET_LIBSTDC++) diff --git a/src/servers/app/drawing/Jamfile b/src/servers/app/drawing/Jamfile index 4c43ade..e35f187 100644 --- a/src/servers/app/drawing/Jamfile +++ b/src/servers/app/drawing/Jamfile @@ -10,10 +10,10 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter font_support ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; Includes [ FGristFiles DrawingEngine.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; StaticLibrary libasdrawing.a : BitmapBuffer.cpp diff --git a/src/servers/app/drawing/Painter/Jamfile b/src/servers/app/drawing/Painter/Jamfile index f736f5c..47703c8 100644 --- a/src/servers/app/drawing/Painter/Jamfile +++ b/src/servers/app/drawing/Painter/Jamfile @@ -9,7 +9,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; SEARCH_SOURCE += [ FDirName $(SUBDIR) drawing_modes ] ; @@ -19,7 +19,7 @@ if $(TARGET_ARCH) = x86 { } Includes [ FGristFiles AGGTextRenderer.cpp Painter.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; StaticLibrary libpainter.a : GlobalSubpixelSettings.cpp diff --git a/src/servers/app/drawing/interface/html5/Jamfile b/src/servers/app/drawing/interface/html5/Jamfile index 363d123..07e5672 100644 --- a/src/servers/app/drawing/interface/html5/Jamfile +++ b/src/servers/app/drawing/interface/html5/Jamfile @@ -11,10 +11,11 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter font_support ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; -Includes [ FGristFiles HTML5HWInterface.cpp HTML5DrawingEngine.cpp CanvasMessage.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; +Includes [ FGristFiles HTML5HWInterface.cpp HTML5DrawingEngine.cpp + CanvasMessage.cpp ] + : [ BuildFeatureAttribute freetype : headers ] ; StaticLibrary libashtml5.a : base64.cpp diff --git a/src/servers/app/drawing/interface/remote/Jamfile b/src/servers/app/drawing/interface/remote/Jamfile index 06bb357..15c1b6c 100644 --- a/src/servers/app/drawing/interface/remote/Jamfile +++ b/src/servers/app/drawing/interface/remote/Jamfile @@ -11,11 +11,11 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter font_support ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; Includes [ FGristFiles RemoteDrawingEngine.cpp RemoteMessage.cpp - RemoteHWInterface.cpp ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + RemoteHWInterface.cpp ] + : [ BuildFeatureAttribute freetype : headers ] ; StaticLibrary libasremote.a : NetReceiver.cpp diff --git a/src/servers/app/stackandtile/Jamfile b/src/servers/app/stackandtile/Jamfile index 8842e3b..be55eb7 100644 --- a/src/servers/app/stackandtile/Jamfile +++ b/src/servers/app/stackandtile/Jamfile @@ -2,13 +2,13 @@ SubDir HAIKU_TOP src servers app stackandtile ; UseLibraryHeaders agg lp_solve linprog ; UsePrivateHeaders app graphics interface shared kernel ; +UseBuildFeatureHeaders freetype ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app decorator ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app font ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; local sources = SATDecorator.cpp @@ -19,7 +19,7 @@ local sources = Tiling.cpp ; Includes [ FGristFiles $(sources) ] - : $(HAIKU_FREETYPE_HEADERS_DEPENDENCY) ; + : [ BuildFeatureAttribute freetype : headers ] ; StaticLibrary libstackandtile.a : $(sources) diff --git a/src/tests/apps/fake_app_server/Jamfile b/src/tests/apps/fake_app_server/Jamfile index a60ee49..4ddb0fe 100644 --- a/src/tests/apps/fake_app_server/Jamfile +++ b/src/tests/apps/fake_app_server/Jamfile @@ -8,7 +8,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter font_support ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; Server fake_app_server : AppServer.cpp diff --git a/src/tests/servers/app/Jamfile b/src/tests/servers/app/Jamfile index 6664c31..9831ee2 100644 --- a/src/tests/servers/app/Jamfile +++ b/src/tests/servers/app/Jamfile @@ -30,7 +30,7 @@ UseHeaders [ FDirName $(appServerDir) drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(appServerDir) drawing Painter font_support ] ; UseHeaders [ FDirName $(appServerDir) font ] ; UseHeaders [ FDirName $(appServerDir) stackandtile ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; UseLibraryHeaders agg lp_solve linprog ; # This overrides the definitions in private/servers/app/ServerConfig.h diff --git a/src/tests/servers/app/painter/Jamfile b/src/tests/servers/app/painter/Jamfile index e57dd58..6182130 100644 --- a/src/tests/servers/app/painter/Jamfile +++ b/src/tests/servers/app/painter/Jamfile @@ -7,7 +7,7 @@ UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter drawing_modes ] ; UseHeaders [ FDirName $(HAIKU_TOP) src servers app drawing Painter font_support ] ; -UseHeaders $(HAIKU_FREETYPE_HEADERS) : true ; +UseBuildFeatureHeaders freetype ; SimpleTest Painter : BitmapBuffer.cpp ############################################################################ Commit: e9f440fdfdc4a2872dca8cb12928c6c3a9f118d8 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 20:48:00 2013 UTC Update libpng package Also make use of new build feature rules ---------------------------------------------------------------------------- diff --git a/build/jam/BuildFeatures b/build/jam/BuildFeatures index 073404f..788c514 100644 --- a/build/jam/BuildFeatures +++ b/build/jam/BuildFeatures @@ -515,44 +515,31 @@ if $(HAIKU_BUILD_FEATURE_WEBKIT) { # libpng local libpngBaseURL = $(baseURL)/lib ; -if $(TARGET_ARCH) = ppc || $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 || $(TARGET_ARCH) = arm { +if $(TARGET_ARCH) in arm ppc x86 x86_64 { if $(TARGET_ARCH) = arm { - HAIKU_LIBPNG_FILE = libpng-1.5.12-arm-2012-11-21.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-arm-2012-11-21.zip ; } else if $(TARGET_ARCH) = ppc { - HAIKU_LIBPNG_FILE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-ppc-gcc4-2012-08-27.zip ; } else if $(TARGET_ARCH) = x86_64 { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86_64-2012-11-18.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86_64-2012-11-18.zip ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-x86-gcc4-2012-08-23.zip ; } else { - HAIKU_LIBPNG_FILE = libpng-1.5.12-x86-gcc2-2012-08-23.zip ; + HAIKU_LIBPNG_PACKAGE = libpng-1.5.12-2-x86_gcc2.hpkg ; + HAIKU_LIBPNG_DEVEL_PACKAGE = libpng_devel-1.5.12-2-x86_gcc2.hpkg ; } - local libpngZipFile = [ DownloadFile $(HAIKU_LIBPNG_FILE) - : $(libpngBaseURL)/$(HAIKU_LIBPNG_FILE) ] ; - - HAIKU_LIBPNG_DIR = [ FDirName $(HAIKU_OPTIONAL_BUILD_PACKAGES_DIR) - $(HAIKU_LIBPNG_FILE:B) ] ; - - HAIKU_LIBPNG_HEADERS_DEPENDENCY = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : common/include : $(libpngZipFile) - : extracted-libpng ] ; - - HAIKU_LIBPNG_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : - common/lib/libpng.so - : $(libpngZipFile) - : extracted-libpng ] ; - HAIKU_LIBPNG_CURRENT_LIB = [ ExtractArchive $(HAIKU_LIBPNG_DIR) - : - common/lib/libpng15.so.15.12.0 - : $(libpngZipFile) - : extracted-libpng ] ; - Depends $(HAIKU_LIBPNG_LIB) $(HAIKU_LIBPNG_CURRENT_LIB) : $(HAIKU_LIBPNG_HEADERS_DEPENDENCY) ; + HAIKU_LIBPNG_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_PACKAGE) ; + HAIKU_LIBPNG_DEVEL_URL = $(hpkgBaseURL)/$(HAIKU_LIBPNG_DEVEL_PACKAGE) ; - HAIKU_LIBPNG_CURRENT_LINK = libpng15.so.15 ; - - HAIKU_LIBPNG_HEADERS = [ FDirName $(HAIKU_LIBPNG_DIR) common include ] ; + ExtractBuildFeatureArchives libpng : + file: base $(HAIKU_LIBPNG_URL) + runtime: lib + file: devel $(HAIKU_LIBPNG_DEVEL_URL) + depends: base + library: develop/lib/libpng.so + headers: develop/headers + ; EnableBuildFeatures libpng ; } else { diff --git a/build/jam/HaikuImage b/build/jam/HaikuImage index 685e5dd..149bdb9 100644 --- a/build/jam/HaikuImage +++ b/build/jam/HaikuImage @@ -77,7 +77,6 @@ SYSTEM_LIBS = [ FFilterByBuildFeatures ] ; PRIVATE_SYSTEM_LIBS = [ FFilterByBuildFeatures $(HAIKU_JPEG_CURRENT_LIB) - $(HAIKU_LIBPNG_CURRENT_LIB) libalm.so libfluidsynth.so libilmimf.so diff --git a/build/jam/OptionalPackageDependencies b/build/jam/OptionalPackageDependencies index e71e6e1..38f7e1c 100644 --- a/build/jam/OptionalPackageDependencies +++ b/build/jam/OptionalPackageDependencies @@ -11,8 +11,10 @@ OptionalPackageDependencies Caya : Expat ; OptionalPackageDependencies CDRecord : GetTextLibintl LibIconv ; OptionalPackageDependencies Curl : OpenSSL ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Development - : DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Perl Zlib-devel ; +OptionalPackageDependencies Development : + DevelopmentBase FFMpeg-devel FreeType-devel GLU-devel Libpng-devel Perl + Zlib-devel + ; OptionalPackageDependencies DevelopmentPowerPC : DevelopmentMin ; OptionalPackageDependencies GetText : GetTextLibintl ; OptionalPackageDependencies GetTextLibintl : LibIconv ; @@ -46,4 +48,4 @@ OptionalPackageDependencies XZ-Utils : Tar ; OptionalPackageDependencies Zlib-devel : Zlib ; OptionalPackageDependencies MandatoryPackages - : Bzip Ctags FFMpeg FreeType GLU Grep ICU LibSolv Mesa Sed Tar Zlib ; + : Bzip Ctags FFMpeg FreeType GLU Grep ICU Libpng LibSolv Mesa Sed Tar Zlib ; diff --git a/build/jam/OptionalPackages b/build/jam/OptionalPackages index c8b84c3..bf9dbbd 100644 --- a/build/jam/OptionalPackages +++ b/build/jam/OptionalPackages @@ -67,6 +67,8 @@ # LibIconv - text encoding conversion library # LibLayout - GCC2 package needed by some BeOS apps to compile # Libmng - mng support library +# Libpng - Portable Network Graphics library +# Libpng-devel - Libpng development files # LibSolv - package dependency solver library # LibXML2 - the XML support library # LibXSLT - xslt library and utility @@ -1249,6 +1251,26 @@ if [ IsOptionalHaikuImagePackageAdded Libmng ] { } [ *** diff truncated: 184 lines dropped *** ] ############################################################################ Commit: e4bd005daf2e3e3c7cb4dfa38e9bde7a578f08e0 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 22:10:37 2013 UTC Update jpeg package * Also make use of new build feature rules. * Since the hacky long_jump_buffer field has been removed from the jpeg_error_mgr struct in the new package, the structure is now wrapped in the JPEGTranslator code to achieve the same behavior. ---------------------------------------------------------------------------- ############################################################################ Commit: 1d14716b9f03839beb3271886b1e32b6aa450e41 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 22:23:35 2013 UTC Some renaming of zlib related jam variables ---------------------------------------------------------------------------- ############################################################################ Commit: a20eb7f497fd5789baee973d9f381d155c231951 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 22:33:23 2013 UTC Update libsolv package Also make use of new build feature rules. ---------------------------------------------------------------------------- ############################################################################ Commit: 12629b106ee37df7495eb9e3b463bd2119762867 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Thu Jun 13 22:46:43 2013 UTC Update expat package ----------------------------------------------------------------------------