summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--3rdParty/OpenSSL/SConscript16
-rw-r--r--BuildTools/SCons/SConscript.boot2
-rw-r--r--BuildTools/SCons/SConstruct61
3 files changed, 45 insertions, 34 deletions
diff --git a/3rdParty/OpenSSL/SConscript b/3rdParty/OpenSSL/SConscript
index dfe78b7..9b84f6d 100644
--- a/3rdParty/OpenSSL/SConscript
+++ b/3rdParty/OpenSSL/SConscript
@@ -1,4 +1,4 @@
-Import("env")
+Import("env", "conf_env")
openssl_bundle_dir = "openssl"
@@ -13,16 +13,26 @@ if env.get("OPENSSL_BUNDLED", False) :
if env["SCONS_STAGE"] == "build" :
openssl_env = env.Clone()
openssl_env["OPENSSL_BUNDLE_DIR"] = openssl_bundle_dir
+ openssl_env.Replace(CCFLAGS = [flag for flag in env["CCFLAGS"] if flag not in ["-W", "-Wall"]])
openssl_env.Append(CPPPATH = [
"$OPENSSL_BUNDLE_DIR",
"$OPENSSL_BUNDLE_DIR/crypto",
"$OPENSSL_BUNDLE_DIR/crypto/asn1",
"$OPENSSL_BUNDLE_DIR/crypto/evp",
+ "$OPENSSL_BUNDLE_DIR/crypto/modes",
"$OPENSSL_BUNDLE_DIR/include"
])
openssl_env.Append(CPPDEFINES = ["OPENSSL_THREADS", "_REENTRANT", "DSO_DLFCN", "HAVE_DLFCN_H", "L_ENDIAN"])
- openssl_env.StaticLibrary("crypto", [
+ # Detect 32/64 bit
+ conf = Configure(conf_env)
+ if conf.CheckDeclaration("__LP64__") :
+ openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned int"), ("MD32_REG_T", "int")])
+ else :
+ openssl_env.Append(CPPDEFINES = [("DES_LONG", "unsigned long")])
+ conf.Finish()
+
+ env["OPENSSL_OBJECTS"] = openssl_env.SwiftenObject([
"$OPENSSL_BUNDLE_DIR/crypto/cryptlib.c",
"$OPENSSL_BUNDLE_DIR/crypto/mem.c",
"$OPENSSL_BUNDLE_DIR/crypto/mem_dbg.c",
@@ -576,8 +586,6 @@ if env.get("OPENSSL_BUNDLED", False) :
"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_lib.c",
"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_conf.c",
"$OPENSSL_BUNDLE_DIR/crypto/ts/ts_asn1.c",
- ])
- openssl_env.StaticLibrary("ssl", [
"$OPENSSL_BUNDLE_DIR/ssl/s2_meth.c",
"$OPENSSL_BUNDLE_DIR/ssl/s2_srvr.c",
"$OPENSSL_BUNDLE_DIR/ssl/s2_clnt.c",
diff --git a/BuildTools/SCons/SConscript.boot b/BuildTools/SCons/SConscript.boot
index 8e8aecf..567ff83 100644
--- a/BuildTools/SCons/SConscript.boot
+++ b/BuildTools/SCons/SConscript.boot
@@ -37,6 +37,7 @@ if os.name == "nt" :
if os.name == "nt" :
vars.Add(PackageVariable("bonjour", "Bonjour SDK location", "yes"))
vars.Add(PackageVariable("openssl", "OpenSSL location", "yes"))
+vars.Add(BoolVariable("openssl_force_bundled", "Force use of the bundled OpenSSL", "no"))
vars.Add(PathVariable("boost_includedir", "Boost headers location", None, PathVariable.PathAccept))
vars.Add(PathVariable("boost_libdir", "Boost library location", None, PathVariable.PathAccept))
vars.Add(PathVariable("expat_includedir", "Expat headers location", None, PathVariable.PathAccept))
@@ -278,6 +279,7 @@ for path in ["SWIFT_INSTALLDIR", "SWIFTEN_INSTALLDIR"] :
else :
env[path] = Dir("#/" + ARGUMENTS[path]).abspath
+
################################################################################
# XCode / iPhone / ...
################################################################################
diff --git a/BuildTools/SCons/SConstruct b/BuildTools/SCons/SConstruct
index 3f02106..b584fad 100644
--- a/BuildTools/SCons/SConstruct
+++ b/BuildTools/SCons/SConstruct
@@ -410,40 +410,41 @@ if env["qt"] :
# OpenSSL
openssl_env = conf_env.Clone()
-use_openssl = bool(env["openssl"])
-openssl_prefix = env["openssl"] if isinstance(env["openssl"], str) else ""
-openssl_flags = {}
-if openssl_prefix :
- openssl_flags = { "CPPPATH": [os.path.join(openssl_prefix, "include")] }
- if env["PLATFORM"] == "win32" :
- openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib", "VC")]
- env["OPENSSL_DIR"] = openssl_prefix
- else :
- openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib")]
- openssl_env.MergeFlags(openssl_flags)
-
-openssl_conf = Configure(openssl_env)
-if use_openssl and openssl_conf.CheckCHeader("openssl/ssl.h") :
- env["HAVE_OPENSSL"] = 1
- env["OPENSSL_FLAGS"] = openssl_flags
- if env["PLATFORM"] == "win32" :
- env["OPENSSL_FLAGS"]["LIBS"] = ["libeay32MD", "ssleay32MD"]
- else:
- env["OPENSSL_FLAGS"]["LIBS"] = ["ssl", "crypto"]
- if env["PLATFORM"] == "darwin" :
- if platform.mac_ver()[0].startswith("10.5") :
- env["OPENSSL_FLAGS"]["FRAMEWORKS"] = ["Security"]
-elif env["target"] in ("iphone-device", "iphone-simulator", "xcode") :
+if env.get("openssl_force_bundled", False) or env["target"] in ("iphone-device", "iphone-simulator", "xcode") :
env["OPENSSL_BUNDLED"] = True
env["HAVE_OPENSSL"] = True
else :
- env["OPENSSL_FLAGS"] = {}
- if env["PLATFORM"] == "win32" :
- env["HAVE_SCHANNEL"] = True
- # If we're compiling for Windows and OpenSSL isn't being used, use Schannel
- env.Append(LIBS = ["secur32"])
+ use_openssl = bool(env["openssl"])
+ openssl_prefix = env["openssl"] if isinstance(env["openssl"], str) else ""
+ openssl_flags = {}
+ if openssl_prefix :
+ openssl_flags = { "CPPPATH": [os.path.join(openssl_prefix, "include")] }
+ if env["PLATFORM"] == "win32" :
+ openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib", "VC")]
+ env["OPENSSL_DIR"] = openssl_prefix
+ else :
+ openssl_flags["LIBPATH"] = [os.path.join(openssl_prefix, "lib")]
+ openssl_env.MergeFlags(openssl_flags)
+
+ openssl_conf = Configure(openssl_env)
+ if use_openssl and openssl_conf.CheckCHeader("openssl/ssl.h") :
+ env["HAVE_OPENSSL"] = 1
+ env["OPENSSL_FLAGS"] = openssl_flags
+ if env["PLATFORM"] == "win32" :
+ env["OPENSSL_FLAGS"]["LIBS"] = ["libeay32MD", "ssleay32MD"]
+ else:
+ env["OPENSSL_FLAGS"]["LIBS"] = ["ssl", "crypto"]
+ if env["PLATFORM"] == "darwin" :
+ if platform.mac_ver()[0].startswith("10.5") :
+ env["OPENSSL_FLAGS"]["FRAMEWORKS"] = ["Security"]
+ else :
+ env["OPENSSL_FLAGS"] = {}
+ if env["PLATFORM"] == "win32" :
+ env["HAVE_SCHANNEL"] = True
+ # If we're compiling for Windows and OpenSSL isn't being used, use Schannel
+ env.Append(LIBS = ["secur32"])
-openssl_conf.Finish()
+ openssl_conf.Finish()
# Bonjour
if env["PLATFORM"] == "darwin" :