mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
* Moved the optional package dependency definitions into the new
build/jam/OptionalPackageDependencies and include it earlier (before the Jamfiles). * Introduced build/jam/OptionalBuildFeatures which is supposed to do the setup for optional build features that need it. * Renamed USE_SSL to HAIKU_BUILD_FEATURE_SSL and made it more intelligent. The OpenSSL optional package is downloaded and unzipped automatically when enabled. Switching between enabled/disabled HAIKU_BUILD_FEATURE_SSL is handled gracefully -- the concerned components are built in separate subdirectories. Adding the OpenSSL optional package to the image also enables HAIKU_BUILD_FEATURE_SSL. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30021 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
d339b68bef
commit
ff81d306d4
5
Jamfile
5
Jamfile
@ -132,6 +132,11 @@ Depends ScreenSaverKit :
|
||||
Haiku
|
||||
;
|
||||
|
||||
# Evaluate optional package dependencies and prepare the optional build
|
||||
# features before parsing the Jamfile tree.
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalPackageDependencies ] ;
|
||||
include [ FDirName $(HAIKU_BUILD_RULES_DIR) OptionalBuildFeatures ] ;
|
||||
|
||||
# Optionally we allow not to include the "src" subdirectory.
|
||||
if $(HAIKU_DONT_INCLUDE_SRC) {
|
||||
# Don't include "src", but at least include the stuff needed for the
|
||||
|
2
Jamrules
2
Jamrules
@ -8,6 +8,8 @@ HAIKU_BUILD_RULES_DIR = [ FDirName $(HAIKU_BUILD_DIR) jam ] ;
|
||||
HAIKU_OBJECT_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) objects ] ;
|
||||
HAIKU_COMMON_PLATFORM_OBJECT_DIR = [ FDirName $(HAIKU_OBJECT_DIR) common ] ;
|
||||
HAIKU_DOWNLOAD_DIR = [ FDirName $(HAIKU_OUTPUT_DIR) download ] ;
|
||||
HAIKU_OPTIONAL_BUILD_PACKAGES_DIR = [ FDirName $(HAIKU_OUTPUT_DIR)
|
||||
build_packages ] ;
|
||||
|
||||
# Cache files for header scanning and jamfile caching
|
||||
HCACHEFILE = header_cache ;
|
||||
|
47
build/jam/OptionalBuildFeatures
Normal file
47
build/jam/OptionalBuildFeatures
Normal file
@ -0,0 +1,47 @@
|
||||
# This file contains setup for features that can optionally be used for the
|
||||
# build. For features that require downloading a zip file from somewhere it is
|
||||
# likely the same file use for an optional package.
|
||||
|
||||
|
||||
# SSL
|
||||
|
||||
# Automatically enable the SSL feature, when the optional OpenSSL optional
|
||||
# package is enabled.
|
||||
if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
|
||||
HAIKU_BUILD_FEATURE_SSL = 1 ;
|
||||
}
|
||||
|
||||
local baseURL = http://haiku-files.org/files/optional-packages ;
|
||||
HAIKU_OPENSSL_PACKAGE = openssl-0.9.8j-gcc2-2009-01-28 ;
|
||||
HAIKU_OPENSSL_URL = $(baseURL)/$(HAIKU_OPENSSL_PACKAGE).zip ;
|
||||
|
||||
if $(HAIKU_BUILD_FEATURE_SSL) {
|
||||
if $(TARGET_ARCH) != x86 {
|
||||
Echo "SSL build feature not available for $(TARGET_ARCH)" ;
|
||||
} else {
|
||||
# Download the zip archive.
|
||||
local zipFile = [ DownloadOptionalPackage $(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) ] ;
|
||||
|
||||
# unzip headers and libraries
|
||||
HAIKU_OPENSSL_HEADERS_DEPENDENCY = [ UnzipArchive $(HAIKU_OPENSSL_DIR)
|
||||
: common/include/ : $(zipFile)
|
||||
] ;
|
||||
|
||||
HAIKU_OPENSSL_LIBS = [ UnzipArchive $(HAIKU_OPENSSL_DIR)
|
||||
:
|
||||
common/lib/libcrypto.so
|
||||
common/lib/libssl.so
|
||||
: $(zipFile)
|
||||
] ;
|
||||
|
||||
HAIKU_OPENSSL_ENABLED = 1 ;
|
||||
HAIKU_OPENSSL_HEADERS
|
||||
= [ FDirName $(HAIKU_OPENSSL_DIR) common include ] ;
|
||||
}
|
||||
}
|
9
build/jam/OptionalPackageDependencies
Normal file
9
build/jam/OptionalPackageDependencies
Normal file
@ -0,0 +1,9 @@
|
||||
# package dependencies
|
||||
|
||||
OptionalPackageDependencies APR-util : APR ;
|
||||
OptionalPackageDependencies BeHappy : BeBook NetSurf ;
|
||||
OptionalPackageDependencies Development : Perl ;
|
||||
OptionalPackageDependencies LibLayout : Development ;
|
||||
OptionalPackageDependencies NetSurf : OpenSSL ;
|
||||
OptionalPackageDependencies OpenSSH : OpenSSL ;
|
||||
OptionalPackageDependencies Subversion : OpenSSL ;
|
@ -43,16 +43,6 @@ if $(HAIKU_ADD_ALTERNATIVE_GCC_LIBS) && $(HAIKU_ALTERNATIVE_GCC_OUTPUT_DIR) {
|
||||
# Yasm
|
||||
|
||||
|
||||
# package dependencies
|
||||
OptionalPackageDependencies APR-util : APR ;
|
||||
OptionalPackageDependencies BeHappy : BeBook NetSurf ;
|
||||
OptionalPackageDependencies Development : Perl ;
|
||||
OptionalPackageDependencies LibLayout : Development ;
|
||||
OptionalPackageDependencies NetSurf : OpenSSL ;
|
||||
OptionalPackageDependencies OpenSSH : OpenSSL ;
|
||||
OptionalPackageDependencies Subversion : OpenSSL ;
|
||||
|
||||
|
||||
# APR
|
||||
if [ IsOptionalHaikuImagePackageAdded APR ] {
|
||||
if $(TARGET_ARCH) != x86 {
|
||||
@ -446,16 +436,14 @@ if [ IsOptionalHaikuImagePackageAdded OpenSSL ] {
|
||||
if $(TARGET_ARCH) != x86 {
|
||||
Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ;
|
||||
} else {
|
||||
local baseURL = http://haiku-files.org/files/optional-packages ;
|
||||
InstallOptionalHaikuImagePackage openssl-0.9.8j-gcc2-2009-01-28
|
||||
: $(baseURL)/openssl-0.9.8j-gcc2-2009-01-28.zip
|
||||
InstallOptionalHaikuImagePackage $(HAIKU_OPENSSL_PACKAGE)
|
||||
: $(HAIKU_OPENSSL_URL)
|
||||
:
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
# P7zip
|
||||
if [ IsOptionalHaikuImagePackageAdded P7zip ] {
|
||||
if $(TARGET_ARCH) != x86 {
|
||||
@ -481,8 +469,6 @@ if [ IsOptionalHaikuImagePackageAdded P7zip ] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
# Pe text editor
|
||||
if [ IsOptionalHaikuImagePackageAdded Pe ] {
|
||||
if $(TARGET_ARCH) != x86 {
|
||||
|
@ -9,7 +9,6 @@ switch $(HAIKU_BUILD_PROFILE) {
|
||||
AddGroupToHaikuImage party : 101 : user sshd ;
|
||||
HAIKU_IMAGE_HOST_NAME = shredder ;
|
||||
HAIKU_IMAGE_SIZE = 400 ;
|
||||
USE_SSL = 1 ;
|
||||
|
||||
AddOptionalHaikuImagePackages BePDF Firefox Pe Vision VLC WonderBrush ;
|
||||
AddOptionalHaikuImagePackages CVS Development Subversion OpenSSH Yasm ;
|
||||
|
@ -49,6 +49,11 @@ AppendToConfigVar DEFINES : HAIKU_TOP src kits : RUN_WITHOUT_REGISTRAR
|
||||
# has no effect on executables or other shared objects.
|
||||
DEBUG on <src!bin!gdb!gdb!>haiku-nat.o = 1 ;
|
||||
|
||||
# Enables the SSL build feature. Several targets will be compiled with SSL
|
||||
# support. Adding the OpenSSL optional package will automatically enable this
|
||||
# feature.
|
||||
HAIKU_BUILD_FEATURE_SSL = 1 ;
|
||||
|
||||
|
||||
# Haiku Image Related Modifications
|
||||
|
||||
|
@ -11,29 +11,30 @@ UsePrivateHeaders mail ;
|
||||
|
||||
SubDirHdrs [ FDirName $(HAIKU_TOP) headers os add-ons mail_daemon ] ;
|
||||
|
||||
local sslDir ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
if ! $(SSL_DIR) {
|
||||
sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ;
|
||||
} else {
|
||||
sslDir = $(SSL_DIR) ;
|
||||
}
|
||||
SubDirSysHdrs [ FDirName $(sslDir) include ] ;
|
||||
}
|
||||
|
||||
Addon IMAP :
|
||||
local sources =
|
||||
imap_client.cpp
|
||||
imap_config.cpp
|
||||
NestedString.cpp ;
|
||||
NestedString.cpp
|
||||
;
|
||||
|
||||
LinkAgainst IMAP : be libmail.so $(TARGET_NETWORK_LIBS) ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
LinkAgainst IMAP : $(sslDir)/lib/libssl.so $(sslDir)/lib/libcrypto.so ;
|
||||
# use OpenSSL, if enabled
|
||||
if $(HAIKU_OPENSSL_ENABLED) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
|
||||
Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
|
||||
# Dependency needed to trigger downloading/unzipping the package before
|
||||
# compiling the files.
|
||||
SetupFeatureObjectsDir ssl ;
|
||||
} else {
|
||||
SetupFeatureObjectsDir no-ssl ;
|
||||
}
|
||||
|
||||
Addon IMAP
|
||||
: $(sources)
|
||||
: be libmail.so $(TARGET_NETWORK_LIBS) $(HAIKU_OPENSSL_LIBS)
|
||||
;
|
||||
|
||||
Package haiku-maildaemon-cvs :
|
||||
IMAP :
|
||||
boot home config add-ons mail_daemon inbound_protocols ;
|
||||
boot home config add-ons mail_daemon inbound_protocols
|
||||
;
|
||||
|
@ -11,30 +11,31 @@ UsePrivateHeaders mail ;
|
||||
|
||||
SubDirHdrs [ FDirName $(HAIKU_TOP) headers os add-ons mail_daemon ] ;
|
||||
|
||||
local sslDir ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
if ! $(SSL_DIR) {
|
||||
sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ;
|
||||
} else {
|
||||
sslDir = $(SSL_DIR) ;
|
||||
}
|
||||
SubDirSysHdrs [ FDirName $(sslDir) include ] ;
|
||||
}
|
||||
|
||||
Addon POP3 :
|
||||
local sources =
|
||||
MessageIO.cpp
|
||||
pop3.cpp
|
||||
SimpleMailProtocol.cpp
|
||||
md5c.c ;
|
||||
md5c.c
|
||||
;
|
||||
|
||||
LinkAgainst POP3 : be libmail.so $(TARGET_NETWORK_LIBS) ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
LinkAgainst POP3 : $(sslDir)/lib/libssl.so $(sslDir)/lib/libcrypto.so ;
|
||||
# use OpenSSL, if enabled
|
||||
if $(HAIKU_OPENSSL_ENABLED) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
|
||||
Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
|
||||
# Dependency needed to trigger downloading/unzipping the package before
|
||||
# compiling the files.
|
||||
SetupFeatureObjectsDir ssl ;
|
||||
} else {
|
||||
SetupFeatureObjectsDir no-ssl ;
|
||||
}
|
||||
|
||||
Addon POP3
|
||||
: $(sources)
|
||||
: be libmail.so $(TARGET_NETWORK_LIBS) $(HAIKU_OPENSSL_LIBS)
|
||||
;
|
||||
|
||||
Package haiku-maildaemon-cvs :
|
||||
POP3 :
|
||||
boot home config add-ons mail_daemon inbound_protocols ;
|
||||
boot home config add-ons mail_daemon inbound_protocols
|
||||
;
|
||||
|
@ -11,26 +11,30 @@ UsePrivateHeaders mail ;
|
||||
|
||||
SubDirHdrs [ FDirName $(HAIKU_TOP) headers os add-ons mail_daemon ] ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
if ! $(SSL_DIR) {
|
||||
sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ;
|
||||
} else {
|
||||
sslDir = $(SSL_DIR) ;
|
||||
}
|
||||
SubDirSysHdrs [ FDirName $(sslDir) include ] ;
|
||||
}
|
||||
|
||||
Addon SMTP :
|
||||
local sources =
|
||||
smtp.cpp
|
||||
md5c.c ;
|
||||
md5c.c
|
||||
;
|
||||
|
||||
LinkAgainst SMTP : be libmail.so $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++) ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
LinkAgainst SMTP : $(sslDir)/lib/libssl.so $(sslDir)/lib/libcrypto.so ;
|
||||
# use OpenSSL, if enabled
|
||||
if $(HAIKU_OPENSSL_ENABLED) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
|
||||
Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
|
||||
# Dependency needed to trigger downloading/unzipping the package before
|
||||
# compiling the files.
|
||||
SetupFeatureObjectsDir ssl ;
|
||||
} else {
|
||||
SetupFeatureObjectsDir no-ssl ;
|
||||
}
|
||||
|
||||
Addon SMTP
|
||||
: $(sources)
|
||||
: be libmail.so $(TARGET_NETWORK_LIBS) $(TARGET_LIBSTDC++)
|
||||
$(HAIKU_OPENSSL_LIBS)
|
||||
;
|
||||
|
||||
Package haiku-maildaemon-cvs :
|
||||
SMTP :
|
||||
boot home config add-ons mail_daemon outbound_protocols ;
|
||||
boot home config add-ons mail_daemon outbound_protocols
|
||||
;
|
||||
|
@ -1,27 +1,33 @@
|
||||
SubDir HAIKU_TOP src bin network wget ;
|
||||
|
||||
UseHeaders [ FDirName $(SUBDIR) src ] : true ;
|
||||
SEARCH_SOURCE += [ FDirName $(SUBDIR) src ] ;
|
||||
|
||||
local defines = [ FDefines HAVE_CONFIG_H=1 ] ;
|
||||
|
||||
SubDirCcFlags $(defines) ;
|
||||
SubDirC++Flags $(defines) ;
|
||||
|
||||
local SSL_FILES ;
|
||||
local SSL_LIBS ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
# use OpenSSL, if enabled
|
||||
local sslSources ;
|
||||
|
||||
if $(HAIKU_OPENSSL_ENABLED) {
|
||||
SubDirCcFlags -DHAVE_LIBSSL ;
|
||||
if ! $(SSL_DIR) {
|
||||
sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ;
|
||||
} else {
|
||||
sslDir = $(SSL_DIR) ;
|
||||
}
|
||||
SubDirSysHdrs [ FDirName $(sslDir) include ] ;
|
||||
SSL_FILES = openssl.c ;
|
||||
SSL_LIBS = $(sslDir)/lib/libssl.so $(sslDir)/lib/libcrypto.so ;
|
||||
}
|
||||
SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
|
||||
sslSources = openssl.c ;
|
||||
Includes [ FGristFiles $(sslSources) ]
|
||||
: $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
|
||||
# Dependency needed to trigger downloading/unzipping the package before
|
||||
# compiling the files.
|
||||
SetupFeatureObjectsDir ssl ;
|
||||
} else {
|
||||
SetupFeatureObjectsDir no-ssl ;
|
||||
}
|
||||
|
||||
|
||||
SEARCH_SOURCE += [ FDirName $(SUBDIR) src ] ;
|
||||
# needs to be invoked after SetupFeatureObjectsDir
|
||||
|
||||
|
||||
BinCommand wget :
|
||||
cmpt.c
|
||||
@ -55,6 +61,6 @@ BinCommand wget :
|
||||
utils.c
|
||||
version.c
|
||||
xmalloc.c
|
||||
$(SSL_FILES)
|
||||
: $(TARGET_NETWORK_LIBS) $(SSL_LIBS)
|
||||
$(sslSources)
|
||||
: $(TARGET_NETWORK_LIBS) $(HAIKU_OPENSSL_LIBS)
|
||||
;
|
||||
|
@ -15,25 +15,12 @@ SubDirHdrs [ FDirName $(HAIKU_TOP) headers os add-ons mail_daemon ] ;
|
||||
UsePrivateHeaders shared ;
|
||||
|
||||
# TODO(bga): E-mail preferences does not really need to link against the
|
||||
# OpenSSL libraries. Remove this after problems with the runtile loader are
|
||||
# OpenSSL libraries. Remove this after problems with the runtime loader are
|
||||
# sorted up. Details here:
|
||||
#
|
||||
# http://www.freelists.org/post/haiku-development/Runtime-loader-problem
|
||||
|
||||
local sslDir ;
|
||||
|
||||
if $(USE_SSL) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
if ! $(SSL_DIR) {
|
||||
sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ;
|
||||
} else {
|
||||
sslDir = $(SSL_DIR) ;
|
||||
}
|
||||
SubDirSysHdrs [ FDirName $(sslDir) include ] ;
|
||||
}
|
||||
|
||||
|
||||
Preference E-mail :
|
||||
local sources =
|
||||
Account.cpp
|
||||
AutoConfig.cpp
|
||||
AutoConfigWindow.cpp
|
||||
@ -42,18 +29,30 @@ Preference E-mail :
|
||||
ConfigViews.cpp
|
||||
ConfigWindow.cpp
|
||||
DNSQuery.cpp
|
||||
main.cpp
|
||||
: be libmail.so $(HAIKU_NETWORK_LIBS) $(TARGET_NETAPI_LIB)
|
||||
: e-mail.rdef
|
||||
;
|
||||
main.cpp
|
||||
;
|
||||
|
||||
if $(USE_SSL) {
|
||||
LinkAgainst E-mail : $(sslDir)/lib/libssl.so $(sslDir)/lib/libcrypto.so ;
|
||||
if $(HAIKU_OPENSSL_ENABLED) {
|
||||
SubDirC++Flags -DUSE_SSL ;
|
||||
SubDirSysHdrs $(HAIKU_OPENSSL_HEADERS) ;
|
||||
Includes [ FGristFiles $(sources) ] : $(HAIKU_OPENSSL_HEADERS_DEPENDENCY) ;
|
||||
# Dependency needed to trigger downloading/unzipping the package before
|
||||
# compiling the files.
|
||||
SetupFeatureObjectsDir ssl ;
|
||||
} else {
|
||||
SetupFeatureObjectsDir no-ssl ;
|
||||
}
|
||||
|
||||
Preference E-mail
|
||||
: $(sources)
|
||||
: be libmail.so $(HAIKU_NETWORK_LIBS) $(TARGET_NETAPI_LIB)
|
||||
$(HAIKU_OPENSSL_LIBS)
|
||||
: e-mail.rdef
|
||||
;
|
||||
|
||||
Package haiku-maildaemon-cvs :
|
||||
E-mail :
|
||||
boot beos preferences ;
|
||||
E-mail :
|
||||
boot beos preferences
|
||||
;
|
||||
|
||||
SubInclude HAIKU_TOP src preferences mail ProviderInfo ;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user