summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2016-01-14 22:27:29 -0500
committerMike Frysinger <vapier@gentoo.org>2016-01-14 22:43:13 -0500
commit32c2bba917aa517e021ba38c8fab2d9cf52d9ec8 (patch)
tree215ad587b3ff5b91535f09ef6ad108c1cd87d7f1 /net-libs/serf/files
parentmedia-sound/mpfc: Add missing AC_SEARCH_LIBS for libm to prevent underlinking (diff)
downloadgentoo-32c2bba917aa517e021ba38c8fab2d9cf52d9ec8.tar.gz
gentoo-32c2bba917aa517e021ba38c8fab2d9cf52d9ec8.tar.bz2
gentoo-32c2bba917aa517e021ba38c8fab2d9cf52d9ec8.zip
net-libs/serf: fix various cross-compile issues
- Use SYSROOT to locate helper config scripts to compile against. - Drop OPENSSL var as it's useless. - Respect AR/RANLIB settings. - Make static libs optional. - Pass settings to install phase too to avoid rebuilding things.
Diffstat (limited to 'net-libs/serf/files')
-rw-r--r--net-libs/serf/files/serf-1.3.8-openssl.patch28
-rw-r--r--net-libs/serf/files/serf-1.3.8-static-lib.patch49
2 files changed, 77 insertions, 0 deletions
diff --git a/net-libs/serf/files/serf-1.3.8-openssl.patch b/net-libs/serf/files/serf-1.3.8-openssl.patch
new file mode 100644
index 000000000000..4cc3719303bb
--- /dev/null
+++ b/net-libs/serf/files/serf-1.3.8-openssl.patch
@@ -0,0 +1,28 @@
+the build doesn't actually use the openssl var for anything useful.
+it blindly adds it to the -I/-L paths which causes problems when you
+cross-compile and when you link (it also adds it to -rpath). punt
+the setting and forget about it.
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -354,8 +354,6 @@ else:
+ apr_libs = ''
+ apu_libs = ''
+
+- env.Append(CPPPATH=['$OPENSSL/include'])
+- env.Append(LIBPATH=['$OPENSSL/lib'])
+
+
+ # If build with gssapi, get its information and define SERF_HAVE_GSSAPI
+@@ -369,8 +369,9 @@ if sys.platform == 'win32':
+ # On some systems, the -R values that APR describes never make it into actual
+ # RPATH flags. We'll manually map all directories in LIBPATH into new
+ # flags to set RPATH values.
+-for d in env['LIBPATH']:
+- env.Append(RPATH=':'+d)
++if env.get('LIBPATH', None):
++ for d in env['LIBPATH']:
++ env.Append(RPATH=':'+d)
+
+ # Set up the construction of serf-*.pc
+ pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,),
diff --git a/net-libs/serf/files/serf-1.3.8-static-lib.patch b/net-libs/serf/files/serf-1.3.8-static-lib.patch
new file mode 100644
index 000000000000..1538328ece66
--- /dev/null
+++ b/net-libs/serf/files/serf-1.3.8-static-lib.patch
@@ -0,0 +1,49 @@
+respect the active archiver tool instead of using `ar` all the time.
+same for `ranlib`.
+
+also add support for BUILD_STATIC bool for controlling the libserf.a.
+
+--- a/SConstruct
++++ b/SConstruct
+@@ -103,6 +103,9 @@
+ BoolVariable('APR_STATIC',
+ "Enable using a static compiled APR",
+ False),
++ RawListVariable('AR', "Command name or path of the archiver", None),
++ RawListVariable('RANLIB', "Command name or path of the archiver indexer", None),
++ BoolVariable('BUILD_STATIC', 'Build libserf static library', True),
+ RawListVariable('CC', "Command name or path of the C compiler", None),
+ RawListVariable('CFLAGS', "Extra flags for the C compiler (space-separated)",
+ None),
+@@ -193,6 +196,7 @@ if gssapi and os.path.isdir(gssapi):
+
+ debug = env.get('DEBUG', None)
+ aprstatic = env.get('APR_STATIC', None)
++build_static = env.get('BUILD_STATIC', True)
+
+ Help(opts.GenerateHelpText(env))
+ opts.Save(SAVED_CONFIG, env)
+@@ -384,7 +388,9 @@ pkgconfig = env.Textfile('serf-%d.pc' % (MAJOR,),
+ env.get('GSSAPI_LIBS', '')),
+ })
+
+-env.Default(lib_static, lib_shared, pkgconfig)
++env.Default(lib_shared, pkgconfig)
++if build_static:
++ env.Default(lib_static)
+
+ if CALLOUT_OKAY:
+ conf = Configure(env)
+@@ -420,8 +420,10 @@ if sys.platform == 'darwin':
+ % (target_install_shared_path,
+ install_shared_path)))
+
+-env.Alias('install-lib', [install_static, install_shared,
+- ])
++install_libs = [install_shared]
++if build_static:
++ install_libs.append(install_static)
++env.Alias('install-lib', install_libs)
+ env.Alias('install-inc', env.Install(incdir, HEADER_FILES))
+ env.Alias('install-pc', env.Install(os.path.join(libdir, 'pkgconfig'),
+ pkgconfig))