[packages/double-conversion] install shared lib

glen glen at pld-linux.org
Sat Oct 5 23:39:40 CEST 2013


commit a6527f0cb5eeb561a91432164f53a63e3524bf1c
Author: Elan Ruusamäe <glen at delfi.ee>
Date:   Sun Oct 6 00:39:29 2013 +0300

    install shared lib

 SConstruct             | 28 +++++++++++++++++++++++++---
 double-conversion.spec | 22 +++++++++++++++++++---
 2 files changed, 44 insertions(+), 6 deletions(-)
---
diff --git a/double-conversion.spec b/double-conversion.spec
index 8646d97..4e526db 100644
--- a/double-conversion.spec
+++ b/double-conversion.spec
@@ -1,3 +1,10 @@
+#
+# TODO
+# - versioning in shared lib
+
+# Conditional build:
+%bcond_without	static_libs	# don't build static libraries
+
 Summary:	Library providing binary-decimal and decimal-binary routines for IEEE doubles
 Name:		double-conversion
 Version:	1.1.1
@@ -38,7 +45,6 @@ cp -p %{SOURCE1} SConstruct
 
 %build
 %scons \
-	optimize=1 \
 	CXX="%{__cxx}"
 	CXXFLAGS="%{__cxx}"
 
@@ -46,7 +52,8 @@ cp -p %{SOURCE1} SConstruct
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_libdir},%{_includedir}/%{name}}
 
-cp -p libdouble_conversion.a libdouble_conversion_pic.a $RPM_BUILD_ROOT%{_libdir}
+%scons install \
+	DESTDIR=$RPM_BUILD_ROOT \
 
 cp -p src/double-conversion.h $RPM_BUILD_ROOT%{_includedir}/%{name}
 cp -p src/bignum.h $RPM_BUILD_ROOT%{_includedir}/%{name}
@@ -62,12 +69,21 @@ cp -p src/utils.h $RPM_BUILD_ROOT%{_includedir}/%{name}
 %clean
 %{__rm} -rf $RPM_BUILD_ROOT
 
+%post	-p /sbin/ldconfig
+%postun	-p /sbin/ldconfig
+
 %files
 %defattr(644,root,root,755)
 %doc LICENSE README AUTHORS
+%{_libdir}/libdouble_conversion.so
 
 %files devel
 %defattr(644,root,root,755)
+%{_includedir}/%{name}
+
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
 %{_libdir}/libdouble_conversion.a
 %{_libdir}/libdouble_conversion_pic.a
-%{_includedir}/%{name}
+%endif
diff --git a/SConstruct b/SConstruct
index beecee9..00fe949 100644
--- a/SConstruct
+++ b/SConstruct
@@ -1,23 +1,45 @@
+import os
+
 double_conversion_sources = ['src/' + x for x in SConscript('src/SConscript')]
 double_conversion_test_sources = ['test/cctest/' + x for x in SConscript('test/cctest/SConscript')]
 test = double_conversion_sources + double_conversion_test_sources
 print(test)
+
+DESTDIR = ARGUMENTS.get('DESTDIR', '')
+prefix = ARGUMENTS.get('prefix', '/usr/local')
+lib = ARGUMENTS.get('libsuffix', 'lib')
+libdir = os.path.join(DESTDIR + prefix, lib)
+
 env = Environment(CPPPATH='#/src')
 debug = ARGUMENTS.get('debug', 0)
 optimize = ARGUMENTS.get('optimize', 0)
 env.Replace(CXX = ARGUMENTS.get('CXX', 'g++'))
 
+CCFLAGS = ['-fPIC']
 if int(debug):
-  env.Append(CCFLAGS = '-g -Wall -Werror')
+  CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-g -Wall -Werror'))
 if int(optimize):
-  env.Append(CCFLAGS = ARGUMENTS.get('CXXFLAGS', '-O3'))
+  CCFLAGS.append(ARGUMENTS.get('CXXFLAGS', '-O3'))
+
+env.Append(CCFLAGS = " ".join(CCFLAGS))
+
 print double_conversion_sources
 print double_conversion_test_sources
 double_conversion_shared_objects = [
     env.SharedObject(src) for src in double_conversion_sources]
 double_conversion_static_objects = [
     env.StaticObject(src) for src in double_conversion_sources]
+
 library_name = 'double_conversion'
+
 static_lib = env.StaticLibrary(library_name, double_conversion_static_objects)
-env.StaticLibrary(library_name + '_pic', double_conversion_shared_objects)
+static_lib_pic = env.StaticLibrary(library_name + '_pic', double_conversion_shared_objects)
+shared_lib = env.SharedLibrary(library_name, double_conversion_sources)
+
 env.Program('run_tests', double_conversion_test_sources, LIBS=[static_lib])
+
+env.Install(libdir, shared_lib)
+env.Install(libdir, static_lib)
+env.Install(libdir, static_lib_pic)
+
+env.Alias('install', libdir)
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/double-conversion.git/commitdiff/a6527f0cb5eeb561a91432164f53a63e3524bf1c



More information about the pld-cvs-commit mailing list