From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) by finch.gentoo.org (Postfix) with ESMTP id 899FF1381F3 for ; Sat, 1 Jun 2013 17:24:39 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 42EDAE0899; Sat, 1 Jun 2013 17:24:36 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 5103FE0899 for ; Sat, 1 Jun 2013 17:24:35 +0000 (UTC) Received: from hornbill.gentoo.org (hornbill.gentoo.org [94.100.119.163]) (using TLSv1 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id D61CF33E215 for ; Sat, 1 Jun 2013 17:24:33 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by hornbill.gentoo.org (Postfix) with ESMTP id 6B615E5464 for ; Sat, 1 Jun 2013 17:24:32 +0000 (UTC) From: "Justin Lecher" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Justin Lecher" Message-ID: <1370105343.4dcc9136254923ef49146f459eb013152c907372.jlec@gentoo> Subject: [gentoo-commits] proj/sci:ccp4 commit in: sci-libs/cctbx/files/2013.02.27.0005/, sci-libs/cctbx/files/2012.05.08.2305/, ... X-VCS-Repository: proj/sci X-VCS-Files: sci-libs/cctbx/ChangeLog sci-libs/cctbx/cctbx-2012.05.08.2305.ebuild sci-libs/cctbx/cctbx-2013.02.27.0005.ebuild sci-libs/cctbx/files/2012.05.08.2305/0001-remove-hardcoded-libtbx_build-env.patch sci-libs/cctbx/files/2012.05.08.2305/0002-fix-opengl-header-missing-gltbx.patch sci-libs/cctbx/files/2012.05.08.2305/0003-correct-paths-in-dispatcher-creation.patch sci-libs/cctbx/files/2012.05.08.2305/0004-upstream-fix-for-declaration-errors-in-gcc4.7.patch sci-libs/cctbx/files/2012.05.08.2305/0005-fix-for-gcc4.7-compilation-error.patch sci-libs/cctbx/files/2012.05.08.2305/0006-options-for-system-libs-installtarget-and-prefix.patch sci-libs/cctbx/files/2012.05.08.2305/0007-adding-shlib-versioning.patch sci-libs/cctbx/files/2012.05.08.2305/0008-Fix-to-skip-pycbf-build.patch sci-libs/cctbx/files/2012.05.08.2305/0009-build-libann-statically.patch sci-libs/cctbx/files/2012.05.08.2305/0010-adding-setup_py.patch sci-libs/cctbx/files/2012.05.08.2305/0011-fix-missing-python-lib-during-l inking.patch sci-libs/cctbx/files/2012.05.08.2305/0012-fix-to-remove-cctbx.python-interpreter.patch sci-libs/cctbx/files/2012.05.08.2305/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch sci-libs/cctbx/files/2012.05.08.2305/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch sci-libs/cctbx/files/2012.05.08.2305/0016-autogenerate-pkgconfig-files.patch sci-libs/cctbx/files/2012.05.08.2305/0017-Fix-to-use-systems-include-path.patch sci-libs/cctbx/files/2012.05.08.2305/0018-Fix-to-skip-build-of-clipper-examples.patch sci-libs/cctbx/files/2012.05.08.2305/0101-system-cbf.patch sci-libs/cctbx/files/2012.05.08.2305/0101-system-clipper.patch sci-libs/cctbx/files/2012.05.08.2305/0102-dontstrip.patch sci-libs/cctbx/files/2013.02.27.0005/0001-remove-hardcoded-libtbx_build-env.patch sci-libs/cctbx/files/2013.02.27.0005/0002-fix-opengl-header-missing-gltbx.patch sci-libs/cctbx/files/2013.02.27.0005/0003-correct-paths-in-dispatcher-creation.patch sci-libs/cctbx/files/2013.02.27.0005/0006-options -for-system-libs-installtarget-and-prefix.patch sci-libs/cctbx/files/2013.02.27.0005/0007-adding-shlib-versioning.patch sci-libs/cctbx/files/2013.02.27.0005/0008-Fix-to-skip-pycbf-build.patch sci-libs/cctbx/files/2013.02.27.0005/0009-build-libann-statically.patch sci-libs/cctbx/files/2013.02.27.0005/0010-adding-setup_py.patch sci-libs/cctbx/files/2013.02.27.0005/0011-fix-missing-python-lib-during-linking.patch sci-libs/cctbx/files/2013.02.27.0005/0012-fix-to-remove-cctbx.python-interpreter.patch sci-libs/cctbx/files/2013.02.27.0005/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch sci-libs/cctbx/files/2013.02.27.0005/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch sci-libs/cctbx/files/2013.02.27.0005/0016-autogenerate-pkgconfig-files.patch sci-libs/cctbx/files/2013.02.27.0005/0017-Fix-to-use-systems-include-path.patch sci-libs/cctbx/files/2013.02.27.0005/0018-Fix-to-skip-build-of-clipper-examples.patch sci-libs/cctbx/files/2013.02.27.0005/0101-system-cbf.patch sci-libs/cctbx/f iles/2013.02.27.0005/0101-system-clipper.patch sci-libs/cctbx/files/2013.02.27.0005/0101-system-libccp4.patch sci-libs/cctbx/files/2013.02.27.0005/0102-dontstrip.patch sci-libs/cctbx/files/2013.02.27.0005/0103-respect-cflags.patch sci-libs/cctbx/metadata.xml X-VCS-Directories: sci-libs/cctbx/files/2013.02.27.0005/ sci-libs/cctbx/files/2012.05.08.2305/ sci-libs/cctbx/ X-VCS-Committer: jlec X-VCS-Committer-Name: Justin Lecher X-VCS-Revision: 4dcc9136254923ef49146f459eb013152c907372 X-VCS-Branch: ccp4 Date: Sat, 1 Jun 2013 17:24:32 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Archives-Salt: e470c1c5-2192-4e7a-aa26-e795db7920dd X-Archives-Hash: 26d07c5d9482cf25caa73e636daba904 commit: 4dcc9136254923ef49146f459eb013152c907372 Author: Justin Lecher gentoo org> AuthorDate: Sat Jun 1 16:49:03 2013 +0000 Commit: Justin Lecher gentoo org> CommitDate: Sat Jun 1 16:49:03 2013 +0000 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=4dcc9136 sci-libs/cctbx: Version Bump Package-Manager: portage-2.2.0_alpha177 --- sci-libs/cctbx/ChangeLog | 218 ++++ sci-libs/cctbx/cctbx-2012.05.08.2305.ebuild | 81 ++ sci-libs/cctbx/cctbx-2013.02.27.0005.ebuild | 81 ++ .../0001-remove-hardcoded-libtbx_build-env.patch | 24 + .../0002-fix-opengl-header-missing-gltbx.patch | 51 + ...0003-correct-paths-in-dispatcher-creation.patch | 85 ++ ...ream-fix-for-declaration-errors-in-gcc4.7.patch | 442 ++++++++ .../0005-fix-for-gcc4.7-compilation-error.patch | 83 ++ ...-for-system-libs-installtarget-and-prefix.patch | 1080 +++++++++++++++++++ .../0007-adding-shlib-versioning.patch | 208 ++++ .../0008-Fix-to-skip-pycbf-build.patch | 52 + .../0009-build-libann-statically.patch | 27 + .../2012.05.08.2305/0010-adding-setup_py.patch | 662 ++++++++++++ ...011-fix-missing-python-lib-during-linking.patch | 47 + ...12-fix-to-remove-cctbx.python-interpreter.patch | 29 + ...o-support-LDFLAGS-in-use_enviroment_flags.patch | 90 ++ .../0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch | 21 + .../0016-autogenerate-pkgconfig-files.patch | 305 ++++++ .../0017-Fix-to-use-systems-include-path.patch | 128 +++ ...018-Fix-to-skip-build-of-clipper-examples.patch | 52 + .../files/2012.05.08.2305/0101-system-cbf.patch | 16 + .../2012.05.08.2305/0101-system-clipper.patch | 185 ++++ .../files/2012.05.08.2305/0102-dontstrip.patch | 25 + .../0001-remove-hardcoded-libtbx_build-env.patch | 24 + .../0002-fix-opengl-header-missing-gltbx.patch | 51 + ...0003-correct-paths-in-dispatcher-creation.patch | 86 ++ ...-for-system-libs-installtarget-and-prefix.patch | 1099 ++++++++++++++++++++ .../0007-adding-shlib-versioning.patch | 208 ++++ .../0008-Fix-to-skip-pycbf-build.patch | 52 + .../0009-build-libann-statically.patch | 27 + .../2013.02.27.0005/0010-adding-setup_py.patch | 662 ++++++++++++ ...011-fix-missing-python-lib-during-linking.patch | 47 + ...12-fix-to-remove-cctbx.python-interpreter.patch | 20 + ...o-support-LDFLAGS-in-use_enviroment_flags.patch | 90 ++ .../0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch | 21 + .../0016-autogenerate-pkgconfig-files.patch | 305 ++++++ .../0017-Fix-to-use-systems-include-path.patch | 128 +++ ...018-Fix-to-skip-build-of-clipper-examples.patch | 52 + .../files/2013.02.27.0005/0101-system-cbf.patch | 16 + .../2013.02.27.0005/0101-system-clipper.patch | 185 ++++ .../2013.02.27.0005/0101-system-libccp4.patch | 15 + .../files/2013.02.27.0005/0102-dontstrip.patch | 25 + .../2013.02.27.0005/0103-respect-cflags.patch | 60 ++ sci-libs/cctbx/metadata.xml | 18 + 44 files changed, 7183 insertions(+) diff --git a/sci-libs/cctbx/ChangeLog b/sci-libs/cctbx/ChangeLog new file mode 100644 index 0000000..949d710 --- /dev/null +++ b/sci-libs/cctbx/ChangeLog @@ -0,0 +1,218 @@ +# ChangeLog for sci-libs/cctbx +# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/ChangeLog,v 1.33 2013/03/19 07:07:15 jlec Exp $ + +*cctbx-2013.02.27.0005 (01 Jun 2013) +*cctbx-2012.05.08.2305 (01 Jun 2013) + + 01 Jun 2013; Justin Lecher +cctbx-2012.05.08.2305.ebuild, + +cctbx-2013.02.27.0005.ebuild, + +files/2012.05.08.2305/0001-remove-hardcoded-libtbx_build-env.patch, + +files/2012.05.08.2305/0002-fix-opengl-header-missing-gltbx.patch, + +files/2012.05.08.2305/0003-correct-paths-in-dispatcher-creation.patch, + +files/2012.05.08.2305/0004-upstream-fix-for-declaration-errors-in-gcc4.7.pat + ch, +files/2012.05.08.2305/0005-fix-for-gcc4.7-compilation-error.patch, + +files/2012.05.08.2305/0006-options-for-system-libs-installtarget-and-prefix. + patch, +files/2012.05.08.2305/0007-adding-shlib-versioning.patch, + +files/2012.05.08.2305/0008-Fix-to-skip-pycbf-build.patch, + +files/2012.05.08.2305/0009-build-libann-statically.patch, + +files/2012.05.08.2305/0010-adding-setup_py.patch, + +files/2012.05.08.2305/0011-fix-missing-python-lib-during-linking.patch, + +files/2012.05.08.2305/0012-fix-to-remove-cctbx.python-interpreter.patch, + +files/2012.05.08.2305/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.pa + tch, +files/2012.05.08.2305/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch, + +files/2012.05.08.2305/0016-autogenerate-pkgconfig-files.patch, + +files/2012.05.08.2305/0017-Fix-to-use-systems-include-path.patch, + +files/2012.05.08.2305/0018-Fix-to-skip-build-of-clipper-examples.patch, + +files/2012.05.08.2305/0101-system-cbf.patch, + +files/2012.05.08.2305/0101-system-clipper.patch, + +files/2012.05.08.2305/0102-dontstrip.patch, + +files/2013.02.27.0005/0001-remove-hardcoded-libtbx_build-env.patch, + +files/2013.02.27.0005/0002-fix-opengl-header-missing-gltbx.patch, + +files/2013.02.27.0005/0003-correct-paths-in-dispatcher-creation.patch, + +files/2013.02.27.0005/0006-options-for-system-libs-installtarget-and-prefix. + patch, +files/2013.02.27.0005/0007-adding-shlib-versioning.patch, + +files/2013.02.27.0005/0008-Fix-to-skip-pycbf-build.patch, + +files/2013.02.27.0005/0009-build-libann-statically.patch, + +files/2013.02.27.0005/0010-adding-setup_py.patch, + +files/2013.02.27.0005/0011-fix-missing-python-lib-during-linking.patch, + +files/2013.02.27.0005/0012-fix-to-remove-cctbx.python-interpreter.patch, + +files/2013.02.27.0005/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.pa + tch, +files/2013.02.27.0005/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch, + +files/2013.02.27.0005/0016-autogenerate-pkgconfig-files.patch, + +files/2013.02.27.0005/0017-Fix-to-use-systems-include-path.patch, + +files/2013.02.27.0005/0018-Fix-to-skip-build-of-clipper-examples.patch, + +files/2013.02.27.0005/0101-system-cbf.patch, + +files/2013.02.27.0005/0101-system-clipper.patch, + +files/2013.02.27.0005/0101-system-libccp4.patch, + +files/2013.02.27.0005/0102-dontstrip.patch, + +files/2013.02.27.0005/0103-respect-cflags.patch, +metadata.xml: + Version Bump + + 19 Mar 2013; Justin Lecher cctbx-2010.03.29.2334-r7.ebuild: + Use more functions from new python eclasses, fixes double prefix on PREFIX + + 17 Mar 2013; Justin Lecher cctbx-2010.03.29.2334-r6.ebuild, + cctbx-2010.03.29.2334-r7.ebuild: + Add missing multilib.eclass + +*cctbx-2010.03.29.2334-r7 (17 Mar 2013) + + 17 Mar 2013; Justin Lecher + +cctbx-2010.03.29.2334-r7.ebuild, metadata.xml: + Move to new python eclasses, log all file removals; bump to EAPI=5;add + missing die; use usex instead of custom check_use + + 19 Oct 2012; Justin Lecher cctbx-2010.03.29.2334-r6.ebuild: + Remove virtual/fortran and always call fortran-2_pkg_setup as intend by the + updated fortran-2.eclass + + 18 Oct 2012; Justin Lecher cctbx-2010.03.29.2334-r6.ebuild: + Remove virtual/fortran and always call fortran-2_pkg_setup as intend by the + updated fortran-2.eclass + + 06 Sep 2012; Justin Lecher cctbx-2010.03.29.2334-r6.ebuild: + Use bundled scons on prefix, #391377 + + 26 Aug 2012; Justin Lecher + -cctbx-2010.03.29.2334-r3.ebuild, -cctbx-2010.03.29.2334-r4.ebuild, + -cctbx-2010.03.29.2334-r5.ebuild: + Drop old + + 19 Jun 2012; Justin Lecher + +files/2010.03.29.2334-gcc-4.7.patch, cctbx-2010.03.29.2334-r6.ebuild: + Add fix for gcc-4.7 + + 14 Jun 2012; Jeff Horelick + cctbx-2010.03.29.2334-r6.ebuild: + marked x86 per bug 413815 + + 23 May 2012; Agostino Sarubbo + cctbx-2010.03.29.2334-r6.ebuild: + Stable for amd64, wrt bug #413815 + + 10 Feb 2012; Markos Chandras + cctbx-2010.03.29.2334-r3.ebuild, cctbx-2010.03.29.2334-r4.ebuild, + cctbx-2010.03.29.2334-r5.ebuild, cctbx-2010.03.29.2334-r6.ebuild: + Update Boost dependencies. Thanks to Arfrever + +*cctbx-2010.03.29.2334-r6 (10 Feb 2012) + + 10 Feb 2012; Justin Lecher + +cctbx-2010.03.29.2334-r6.ebuild: + Add fixes for boost-1.48 and its PyABI specific libs, #401393 + +*cctbx-2010.03.29.2334-r5 (04 Dec 2011) + + 04 Dec 2011; Justin Lecher + +cctbx-2010.03.29.2334-r5.ebuild: + Create soname symlink, streamelined find and delete of unwanted files + + 07 Oct 2011; Justin Lecher cctbx-2010.03.29.2334-r3.ebuild, + cctbx-2010.03.29.2334-r4.ebuild, metadata.xml: + Added [python] to dep on dev-libs/boost + + 21 Jun 2011; Justin Lecher cctbx-2010.03.29.2334-r3.ebuild, + cctbx-2010.03.29.2334-r4.ebuild: + Add dependency on virtual/fortran + + 21 Jun 2011; Justin Lecher cctbx-2010.03.29.2334-r3.ebuild, + cctbx-2010.03.29.2334-r4.ebuild: + Added fortran-2.eclass support + +*cctbx-2010.03.29.2334-r4 (10 Apr 2011) + + 10 Apr 2011; Justin Lecher + +files/2010.03.29.2334-gcc-4.6.patch, +cctbx-2010.03.29.2334-r4.ebuild: + Fix changes in gcc-4.6 + + 24 Jan 2011; Justin Lecher + -cctbx-2010.03.29.2334-r1.ebuild: + Removed old + + 23 Jan 2011; Thomas Kahle cctbx-2010.03.29.2334-r3.ebuild: + x86 stable per bug 351765 + + 16 Jan 2011; Markos Chandras + cctbx-2010.03.29.2334-r3.ebuild: + Stable on amd64 wrt bug #351765 + + 16 Jan 2011; Kacper Kowalik + cctbx-2010.03.29.2334-r3.ebuild: + marked ~ppc wrt #303931 + + 15 Jan 2011; Justin Lecher + -cctbx-2009.11.01.0123-r1.ebuild, -cctbx-2010.03.29.2334-r2.ebuild: + Removed old + + 15 Jan 2011; Justin Lecher + files/2010.03.29.2334-boost.patch, cctbx-2010.03.29.2334-r2.ebuild, + cctbx-2010.03.29.2334-r3.ebuild: + Prefix boost detection fix + + 29 Dec 2010; Justin Lecher cctbx-2009.11.01.0123-r1.ebuild, + cctbx-2010.03.29.2334-r1.ebuild, cctbx-2010.03.29.2334-r2.ebuild, + cctbx-2010.03.29.2334-r3.ebuild: + Added missing dependency on clipper + + 16 Dec 2010; Justin Lecher cctbx-2009.11.01.0123-r1.ebuild, + cctbx-2010.03.29.2334-r1.ebuild, cctbx-2010.03.29.2334-r2.ebuild, + cctbx-2010.03.29.2334-r3.ebuild: + Added missing RDEPEND on sci-libs/clipper + +*cctbx-2010.03.29.2334-r3 (15 Dec 2010) + + 15 Dec 2010; Justin Lecher + +cctbx-2010.03.29.2334-r3.ebuild: + Fixing all binaray wrappers + + 12 Sep 2010; Justin Lecher + cctbx-2009.11.01.0123-r1.ebuild, cctbx-2010.03.29.2334-r1.ebuild, + cctbx-2010.03.29.2334-r2.ebuild: + Switched to tc-has-openmp and remove built_with_use + +*cctbx-2010.03.29.2334-r2 (12 Sep 2010) + + 12 Sep 2010; Justin Lecher + +files/2010.03.29.2334-boost.patch, +cctbx-2010.03.29.2334-r2.ebuild, + +files/2010.03.29.2334-clipper.patch, +files/2010.03.29.2334-flags.patch, + +files/2010.03.29.2334-soname.patch: + Big rewrite + +*cctbx-2010.03.29.2334-r1 (03 Jul 2010) + + 03 Jul 2010; Justin Lecher + +files/2010.03.29.2334-tst_server.py.patch, -cctbx-2010.03.29.2334.ebuild, + +cctbx-2010.03.29.2334-r1.ebuild: + Fix for invalid python syntax + + 28 Jun 2010; Christoph Mende + cctbx-2010.03.29.2334.ebuild: + Stable on amd64 wrt bug #325965 + + 16 Jun 2010; Justin Lecher + cctbx-2009.11.01.0123-r1.ebuild, cctbx-2010.03.29.2334.ebuild: + Last fixes for prefix and keyworded for *-linux + +*cctbx-2010.03.29.2334 (22 May 2010) + + 22 May 2010; Justin Lecher + +cctbx-2010.03.29.2334.ebuild: + Version bump + + 14 Feb 2010; Justin Lecher (jlec) + -cctbx-2009.11.01.0123.ebuild, +cctbx-2009.11.01.0123-r1.ebuild: + Workaround for broken python.eclass + +*cctbx-2009.11.01.0123-r1 (13 Feb 2010) + + 13 Feb 2010; Justin Lecher (jlec) + +cctbx-2009.11.01.0123-r1.ebuild: + Correct usage of new python.eclass + +*cctbx-2009.11.01.0123 (04 Feb 2010) + + 04 Feb 2010; Justin Lecher (jlec) + +cctbx-2009.11.01.0123.ebuild, +metadata.xml: + New ebuild, initialy written by dberkholz + diff --git a/sci-libs/cctbx/cctbx-2012.05.08.2305.ebuild b/sci-libs/cctbx/cctbx-2012.05.08.2305.ebuild new file mode 100644 index 0000000..ac51db7 --- /dev/null +++ b/sci-libs/cctbx/cctbx-2012.05.08.2305.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/cctbx-2010.03.29.2334-r7.ebuild,v 1.3 2013/03/19 07:07:15 jlec Exp $ + +EAPI=5 + +DISTUTILS_SINGLE_IMPL=true +PYTHON_COMPAT=( python{2_6,2_7} ) + +inherit distutils-r1 eutils fortran-2 multilib toolchain-funcs + +MY_PV="${PV//./_}" + +DESCRIPTION="Computational Crystallography Toolbox" +HOMEPAGE="http://cctbx.sourceforge.net/" +SRC_URI="http://cci.lbl.gov/cctbx_build/results/${MY_PV}/${PN}_bundle.tar.gz -> ${P}.tar.gz" + +LICENSE="cctbx-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+minimal" + +RDEPEND=" + >=dev-libs/boost-1.48[python,${PYTHON_USEDEP}] + sci-libs/clipper + sci-libs/fftw:2.1 + sci-libs/libccp4 + !minimal? ( + sci-chemistry/cns + sci-chemistry/shelx )" +DEPEND="${RDEPEND} + !prefix? ( >=dev-util/scons-1.2[${PYTHON_USEDEP}] )" + +S="${WORKDIR}" +MY_S="${WORKDIR}"/cctbx_sources +MY_B="${WORKDIR}"/cctbx_build + +pkg_setup() { + use openmp && FORTRAN_NEED_OPENMP="1" + if use openmp && ! tc-has-openmp; then + ewarn "You are using gcc and OpenMP is only available with gcc >= 4.2 and icc" + ewarn "If you want to build ${PN} with OpenMP, abort now," + ewarn "and switch CC to an OpenMP capable compiler" + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + python-single-r1_pkg_setup +} + +python_prepare_all() { + local opts + local optsld + + EPATCH_OPTS="-p1" \ + epatch \ + "${FILESDIR}"/${PV}/*patch + + export MULTILIBDIR=$(get_libdir) + + # Clean sources + rm -rf "${MY_S}"/boost/* || die + rm -rf "${MY_S}"/PyCifRW/* || die + find "${MY_S}"/cbflib -maxdepth 1 -mindepth 1 -not -name examples -exec rm -rf {} + || die + find "${MY_S}"/ccp4io/lib -maxdepth 1 -mindepth 1 -not -name ssm -exec rm -rf {} + || die + find "${MY_S}"/clipper -maxdepth 1 -mindepth 1 -not -name clipper -exec rm -rf {} + || die +# find "${MY_S}"/clipper/clipper -maxdepth 1 -mindepth 1 \( -not -name cctbx -a -not -name contrib \) -exec rm -rf {} + || die + find "${MY_S}"/clipper/clipper -maxdepth 1 -mindepth 1 -not -name cctbx -exec rm -rf {} + || die + rm -rf "${MY_S}"/gui_resources/gl2ps || die +# rm -rf "${MY_S}"/scons || die + rm -rf "${MY_S}"/ucif/antlr3 || die +# rm -rvf "${MY_S}"/ccp4io/lib/ssm || die + +# find "${MY_S}/clipper" -name "*.h" -print -delete >> "${T}"/clean.log || die + + if ! use prefix; then + rm -rvf "${MY_S}/scons" >> "${T}"/clean.log || die + echo "import os, sys; os.execvp('scons', sys.argv)" > "${MY_S}"/libtbx/command_line/scons.py || die + fi + + distutils-r1_python_prepare_all +} diff --git a/sci-libs/cctbx/cctbx-2013.02.27.0005.ebuild b/sci-libs/cctbx/cctbx-2013.02.27.0005.ebuild new file mode 100644 index 0000000..ac51db7 --- /dev/null +++ b/sci-libs/cctbx/cctbx-2013.02.27.0005.ebuild @@ -0,0 +1,81 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-libs/cctbx/cctbx-2010.03.29.2334-r7.ebuild,v 1.3 2013/03/19 07:07:15 jlec Exp $ + +EAPI=5 + +DISTUTILS_SINGLE_IMPL=true +PYTHON_COMPAT=( python{2_6,2_7} ) + +inherit distutils-r1 eutils fortran-2 multilib toolchain-funcs + +MY_PV="${PV//./_}" + +DESCRIPTION="Computational Crystallography Toolbox" +HOMEPAGE="http://cctbx.sourceforge.net/" +SRC_URI="http://cci.lbl.gov/cctbx_build/results/${MY_PV}/${PN}_bundle.tar.gz -> ${P}.tar.gz" + +LICENSE="cctbx-2.0" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="+minimal" + +RDEPEND=" + >=dev-libs/boost-1.48[python,${PYTHON_USEDEP}] + sci-libs/clipper + sci-libs/fftw:2.1 + sci-libs/libccp4 + !minimal? ( + sci-chemistry/cns + sci-chemistry/shelx )" +DEPEND="${RDEPEND} + !prefix? ( >=dev-util/scons-1.2[${PYTHON_USEDEP}] )" + +S="${WORKDIR}" +MY_S="${WORKDIR}"/cctbx_sources +MY_B="${WORKDIR}"/cctbx_build + +pkg_setup() { + use openmp && FORTRAN_NEED_OPENMP="1" + if use openmp && ! tc-has-openmp; then + ewarn "You are using gcc and OpenMP is only available with gcc >= 4.2 and icc" + ewarn "If you want to build ${PN} with OpenMP, abort now," + ewarn "and switch CC to an OpenMP capable compiler" + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + python-single-r1_pkg_setup +} + +python_prepare_all() { + local opts + local optsld + + EPATCH_OPTS="-p1" \ + epatch \ + "${FILESDIR}"/${PV}/*patch + + export MULTILIBDIR=$(get_libdir) + + # Clean sources + rm -rf "${MY_S}"/boost/* || die + rm -rf "${MY_S}"/PyCifRW/* || die + find "${MY_S}"/cbflib -maxdepth 1 -mindepth 1 -not -name examples -exec rm -rf {} + || die + find "${MY_S}"/ccp4io/lib -maxdepth 1 -mindepth 1 -not -name ssm -exec rm -rf {} + || die + find "${MY_S}"/clipper -maxdepth 1 -mindepth 1 -not -name clipper -exec rm -rf {} + || die +# find "${MY_S}"/clipper/clipper -maxdepth 1 -mindepth 1 \( -not -name cctbx -a -not -name contrib \) -exec rm -rf {} + || die + find "${MY_S}"/clipper/clipper -maxdepth 1 -mindepth 1 -not -name cctbx -exec rm -rf {} + || die + rm -rf "${MY_S}"/gui_resources/gl2ps || die +# rm -rf "${MY_S}"/scons || die + rm -rf "${MY_S}"/ucif/antlr3 || die +# rm -rvf "${MY_S}"/ccp4io/lib/ssm || die + +# find "${MY_S}/clipper" -name "*.h" -print -delete >> "${T}"/clean.log || die + + if ! use prefix; then + rm -rvf "${MY_S}/scons" >> "${T}"/clean.log || die + echo "import os, sys; os.execvp('scons', sys.argv)" > "${MY_S}"/libtbx/command_line/scons.py || die + fi + + distutils-r1_python_prepare_all +} diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0001-remove-hardcoded-libtbx_build-env.patch b/sci-libs/cctbx/files/2012.05.08.2305/0001-remove-hardcoded-libtbx_build-env.patch new file mode 100644 index 0000000..14d3f09 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0001-remove-hardcoded-libtbx_build-env.patch @@ -0,0 +1,24 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 15:50:22 +0200 +Subject: remove-hardcoded-libtbx_build-env + +--- + cctbx_sources/libtbx/env_config.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 9c01e0f..8a62446 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -2147,7 +2147,10 @@ def cold_start(args): + env.refresh() + + def unpickle(): +- build_path = os.environ["LIBTBX_BUILD"] ++ if os.environ.has_key("LIBTBX_BUILD"): ++ build_path = os.environ["LIBTBX_BUILD"] ++ else: ++ build_path = "/usr/share/cctbx/python%d.%d"%(sys.version_info[:2]) + set_preferred_sys_prefix_and_sys_executable(build_path=build_path) + libtbx_env = open(op.join(build_path, "libtbx_env"), "rb") + env = pickle.load(libtbx_env) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0002-fix-opengl-header-missing-gltbx.patch b/sci-libs/cctbx/files/2012.05.08.2305/0002-fix-opengl-header-missing-gltbx.patch new file mode 100644 index 0000000..d3684a5 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0002-fix-opengl-header-missing-gltbx.patch @@ -0,0 +1,51 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 15:51:06 +0200 +Subject: fix-opengl-header-missing-gltbx + +--- + cctbx_sources/gltbx/SConscript | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/gltbx/SConscript b/cctbx_sources/gltbx/SConscript +index d02e7a5..4b2213d 100644 +--- a/cctbx_sources/gltbx/SConscript ++++ b/cctbx_sources/gltbx/SConscript +@@ -45,22 +45,22 @@ if (not env_etc.no_boost_python): + env=env, + paths=env_etc.gltbx_common_includes + [env_etc.python_include]) + # +- env_etc.gltbx_has_usable_opengl = False +- conf = trial_env.Configure() +- flag, output = conf.TryRun(""" +-#include +-#include +-int main() { std::cout << GL_POINT << std::endl; return 0; } +-""", extension=".cpp") +- conf.Finish() +- if (flag and len(output.strip()) != 0): +- conf = env.Configure() +- if (conf.TryCompile(""" +-#include +-""", extension=".cpp")): +- env_etc.gltbx_has_usable_opengl = True +- conf.Finish() +- # ++ env_etc.gltbx_has_usable_opengl = True ++# conf = trial_env.Configure() ++# flag, output = conf.TryRun(""" ++##include ++##include ++#int main() { std::cout << GL_POINT << std::endl; return 0; } ++#""", extension=".cpp") ++# conf.Finish() ++# if (flag and len(output.strip()) != 0): ++# conf = env.Configure() ++# if (conf.TryCompile(""" ++##include ++#""", extension=".cpp")): ++# env_etc.gltbx_has_usable_opengl = True ++# conf.Finish() ++# # + if (not env_etc.gltbx_has_usable_opengl): + print "gltbx: OpenGL headers and/or libraries not available." + print "gltbx: Compilation skipped." diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0003-correct-paths-in-dispatcher-creation.patch b/sci-libs/cctbx/files/2012.05.08.2305/0003-correct-paths-in-dispatcher-creation.patch new file mode 100644 index 0000000..4fe0ea3 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0003-correct-paths-in-dispatcher-creation.patch @@ -0,0 +1,85 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 16:01:20 +0200 +Subject: correct-paths-in-dispatcher-creation + +--- + cctbx_sources/libtbx/env_config.py | 48 ++++++++++++++++++------------------ + 1 file changed, 24 insertions(+), 24 deletions(-) + +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 8a62446..c3e1c7d 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -894,26 +894,26 @@ Wait for the command to finish, then try again.""" % vars()) + print >> f, '# command at the end.' + print >> f, '#' + write_do_not_edit(f=f) +- print >> f, '# To customize this auto-generated script create' ++ #print >> f, '# To customize this auto-generated script create' + print >> f, '#' +- print >> f, '# dispatcher_include*.sh' ++ #print >> f, '# dispatcher_include*.sh' + print >> f, '#' +- print >> f, '# files in %s and run' % show_string(abs(self.build_path)) ++ #print >> f, '# files in %s and run' % show_string(abs(self.build_path)) + print >> f, '#' +- print >> f, '# libtbx.refresh' ++ #print >> f, '# libtbx.refresh' + print >> f, '#' + print >> f, '# to re-generate the dispatchers (libtbx.refresh is a subset' + print >> f, '# of the functionality of the libtbx/configure.py command).' + print >> f, '#' +- print >> f, '# See also:' +- print >> f, '# %s' \ +- % show_string(self.under_build("dispatcher_include_template.sh")) ++ #print >> f, '# See also:' ++ #print >> f, '# %s' \ ++ # % show_string(self.under_build("dispatcher_include_template.sh")) + print >> f, '#' + print >> f, 'unset PYTHONHOME' + print >> f, 'LC_ALL=C' + print >> f, 'export LC_ALL' +- print >> f, 'LIBTBX_BUILD="$(cd "$(dirname "$0")" && cd .. && pwd -P)"' +- print >> f, 'export LIBTBX_BUILD' ++ #print >> f, 'LIBTBX_BUILD="$(cd "$(dirname "$0")" && cd .. && pwd -P)"' ++ #print >> f, 'export LIBTBX_BUILD' + print >> f, 'LIBTBX_PYEXE_BASENAME="%s"' % self.python_exe.basename() + print >> f, 'export LIBTBX_PYEXE_BASENAME' + source_is_py = False +@@ -930,21 +930,21 @@ Wait for the command to finish, then try again.""" % vars()) + source_is_py = True + for line in self.dispatcher_include(where="at_start"): + print >> f, line +- essentials = [("PYTHONPATH", self.pythonpath)] +- essentials.append(( +- ld_library_path_var_name(), +- self.ld_library_path_additions())) +- essentials.append(("PATH", [self.bin_path])) +- for n,v in essentials: +- if (len(v) == 0): continue +- v = ":".join([p.sh_value() for p in v]) +- print >> f, 'if [ -n "$%s" ]; then' % n +- print >> f, ' %s="%s:$%s"' % (n, v, n) +- print >> f, ' export %s' % n +- print >> f, 'else' +- print >> f, ' %s="%s"' % (n, v) +- print >> f, ' export %s' % n +- print >> f, 'fi' ++ # essentials = [("PYTHONPATH", self.pythonpath)] ++ # essentials.append(( ++ # ld_library_path_var_name(), ++ # self.ld_library_path_additions())) ++ # essentials.append(("PATH", [self.bin_path])) ++ # for n,v in essentials: ++ # if (len(v) == 0): continue ++ # v = ":".join([p.sh_value() for p in v]) ++ # print >> f, 'if [ -n "$%s" ]; then' % n ++ # print >> f, ' %s="%s:$%s"' % (n, v, n) ++ # print >> f, ' export %s' % n ++ # print >> f, 'else' ++ # print >> f, ' %s="%s"' % (n, v) ++ # print >> f, ' export %s' % n ++ # print >> f, 'fi' + precall_commands = self.dispatcher_precall_commands() + if (precall_commands is not None): + for line in precall_commands: diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0004-upstream-fix-for-declaration-errors-in-gcc4.7.patch b/sci-libs/cctbx/files/2012.05.08.2305/0004-upstream-fix-for-declaration-errors-in-gcc4.7.patch new file mode 100644 index 0000000..a3acee5 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0004-upstream-fix-for-declaration-errors-in-gcc4.7.patch @@ -0,0 +1,442 @@ +From: Radostan Riedel +Date: Mon, 9 Jul 2012 19:37:49 +0200 +Subject: upstream fix for declaration errors in gcc4.7 + +--- + cctbx_sources/mmtbx/bulk_solvent/bulk_solvent.h | 416 +++++++++++------------ + 1 file changed, 208 insertions(+), 208 deletions(-) + +diff --git a/cctbx_sources/mmtbx/bulk_solvent/bulk_solvent.h b/cctbx_sources/mmtbx/bulk_solvent/bulk_solvent.h +index 6959f18..0be075f 100644 +--- a/cctbx_sources/mmtbx/bulk_solvent/bulk_solvent.h ++++ b/cctbx_sources/mmtbx/bulk_solvent/bulk_solvent.h +@@ -322,6 +322,214 @@ private: + }; + + //------------------------------------------------------------------------------ ++template ++FloatType ++scale(af::const_ref const& fo, ++ af::const_ref const& fc) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ FloatType fc_abs = std::abs(fc[i]); ++ num += fo[i] * fc_abs; ++ denum += fc_abs * fc_abs; ++ } ++ return (denum == 0 ? 0 : num/denum); ++}; ++ ++template ++FloatType ++scale(af::const_ref const& fo, ++ af::const_ref const& fc, ++ af::const_ref const& selection) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ MMTBX_ASSERT(fo.size()==selection.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ if(selection[i]) { ++ FloatType fc_abs = std::abs(fc[i]); ++ num += fo[i] * fc_abs; ++ denum += fc_abs * fc_abs; ++ } ++ } ++ return (denum == 0 ? 0 : num/denum); ++}; ++ ++ ++template ++FloatType ++scale(af::const_ref const& fo, ++ af::const_ref const& fc) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ num += fo[i] * fc[i]; ++ denum += fc[i] * fc[i]; ++ } ++ return (denum == 0 ? 0 : num/denum); ++}; ++ ++template ++FloatType ++scale( ++ af::const_ref const& fo, ++ af::const_ref< std::complex > const& fc1, ++ af::const_ref< std::complex > const& fc2, ++ FloatType const& twin_fraction) ++{ ++ MMTBX_ASSERT(fo.size()==fc1.size()); ++ MMTBX_ASSERT(fo.size()==fc2.size()); ++ af::shared fc_abs(fo.size()); ++ for(std::size_t i=0; i < fo.size(); i++) { ++ FloatType fc_abs1 = std::abs(fc1[i]); ++ FloatType fc_abs2 = std::abs(fc2[i]); ++ fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ ++ twin_fraction *fc_abs2*fc_abs2); ++ } ++ return scale(fo,fc_abs.const_ref()); ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref const& fc, ++ FloatType const& scale) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ num += std::abs(fo[i] - fc[i] * scale); ++ denum += fo[i]; ++ } ++ if(denum == 0) return 1.e+9; ++ return num/denum; ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref< std::complex > const& fc, ++ FloatType const& scale) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ num += std::abs(fo[i] - std::abs(fc[i]) * scale); ++ denum += fo[i]; ++ } ++ if(denum == 0) return 1.e+9; ++ return num/denum; ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref< std::complex > const& fc, ++ af::const_ref const& selection, ++ FloatType const& scale) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ MMTBX_ASSERT(fo.size()==selection.size()); ++ FloatType num=0.0; ++ FloatType denum=0.0; ++ for(std::size_t i=0; i < fo.size(); i++) { ++ if(selection[i]) { ++ num += std::abs(fo[i] - std::abs(fc[i]) * scale); ++ denum += fo[i]; ++ } ++ } ++ if(denum == 0) return 1.e+9; ++ return num/denum; ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref const& fc) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType sc = scale(fo,fc); ++ return r_factor(fo,fc,sc); ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref > const& fc) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ FloatType sc = scale(fo,fc); ++ return r_factor(fo,fc,sc); ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref > const& fc, ++ af::const_ref const& selection) ++{ ++ MMTBX_ASSERT(fo.size()==fc.size()); ++ MMTBX_ASSERT(fo.size()==selection.size()); ++ FloatType sc = scale(fo,fc,selection); ++ return r_factor(fo,fc,selection,sc); ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref< std::complex > const& fc1, ++ af::const_ref< std::complex > const& fc2, ++ FloatType const& twin_fraction) ++{ ++ MMTBX_ASSERT(fo.size()==fc1.size()); ++ MMTBX_ASSERT(fo.size()==fc2.size()); ++ af::shared fc_abs(fo.size()); ++ for(std::size_t i=0; i < fo.size(); i++) { ++ FloatType fc_abs1 = std::abs(fc1[i]); ++ FloatType fc_abs2 = std::abs(fc2[i]); ++ fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ ++ twin_fraction *fc_abs2*fc_abs2); ++ } ++ FloatType sc = scale(fo,fc_abs.const_ref()); ++ return r_factor(fo,fc_abs.const_ref(),sc); ++}; ++ ++template ++FloatType ++r_factor( ++ af::const_ref const& fo, ++ af::const_ref< std::complex > const& fc1, ++ af::const_ref< std::complex > const& fc2, ++ FloatType const& twin_fraction, ++ FloatType const& scale) ++{ ++ MMTBX_ASSERT(fo.size()==fc1.size()); ++ MMTBX_ASSERT(fo.size()==fc2.size()); ++ af::shared fc_abs(fo.size()); ++ for(std::size_t i=0; i < fo.size(); i++) { ++ FloatType fc_abs1 = std::abs(fc1[i]); ++ FloatType fc_abs2 = std::abs(fc2[i]); ++ fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ ++ twin_fraction *fc_abs2*fc_abs2); ++ } ++ return r_factor(fo,fc_abs.const_ref(),scale); ++}; ++ ++//------------------------------------------------------------------------------ + // All scales (overall, overall anisotropic, etc) must be applied. + template < + typename FloatType=double, +@@ -744,214 +952,6 @@ template + }; + + //------------------------------------------------------------------------------ +-template +-FloatType +-scale(af::const_ref const& fo, +- af::const_ref const& fc) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- FloatType fc_abs = std::abs(fc[i]); +- num += fo[i] * fc_abs; +- denum += fc_abs * fc_abs; +- } +- return (denum == 0 ? 0 : num/denum); +-}; +- +-template +-FloatType +-scale(af::const_ref const& fo, +- af::const_ref const& fc, +- af::const_ref const& selection) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- MMTBX_ASSERT(fo.size()==selection.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- if(selection[i]) { +- FloatType fc_abs = std::abs(fc[i]); +- num += fo[i] * fc_abs; +- denum += fc_abs * fc_abs; +- } +- } +- return (denum == 0 ? 0 : num/denum); +-}; +- +- +-template +-FloatType +-scale(af::const_ref const& fo, +- af::const_ref const& fc) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- num += fo[i] * fc[i]; +- denum += fc[i] * fc[i]; +- } +- return (denum == 0 ? 0 : num/denum); +-}; +- +-template +-FloatType +-scale( +- af::const_ref const& fo, +- af::const_ref< std::complex > const& fc1, +- af::const_ref< std::complex > const& fc2, +- FloatType const& twin_fraction) +-{ +- MMTBX_ASSERT(fo.size()==fc1.size()); +- MMTBX_ASSERT(fo.size()==fc2.size()); +- af::shared fc_abs(fo.size()); +- for(std::size_t i=0; i < fo.size(); i++) { +- FloatType fc_abs1 = std::abs(fc1[i]); +- FloatType fc_abs2 = std::abs(fc2[i]); +- fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ +- twin_fraction *fc_abs2*fc_abs2); +- } +- return scale(fo,fc_abs.const_ref()); +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref const& fc, +- FloatType const& scale) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- num += std::abs(fo[i] - fc[i] * scale); +- denum += fo[i]; +- } +- if(denum == 0) return 1.e+9; +- return num/denum; +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref< std::complex > const& fc, +- FloatType const& scale) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- num += std::abs(fo[i] - std::abs(fc[i]) * scale); +- denum += fo[i]; +- } +- if(denum == 0) return 1.e+9; +- return num/denum; +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref< std::complex > const& fc, +- af::const_ref const& selection, +- FloatType const& scale) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- MMTBX_ASSERT(fo.size()==selection.size()); +- FloatType num=0.0; +- FloatType denum=0.0; +- for(std::size_t i=0; i < fo.size(); i++) { +- if(selection[i]) { +- num += std::abs(fo[i] - std::abs(fc[i]) * scale); +- denum += fo[i]; +- } +- } +- if(denum == 0) return 1.e+9; +- return num/denum; +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref const& fc) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType sc = scale(fo,fc); +- return r_factor(fo,fc,sc); +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref > const& fc) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- FloatType sc = scale(fo,fc); +- return r_factor(fo,fc,sc); +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref > const& fc, +- af::const_ref const& selection) +-{ +- MMTBX_ASSERT(fo.size()==fc.size()); +- MMTBX_ASSERT(fo.size()==selection.size()); +- FloatType sc = scale(fo,fc,selection); +- return r_factor(fo,fc,selection,sc); +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref< std::complex > const& fc1, +- af::const_ref< std::complex > const& fc2, +- FloatType const& twin_fraction) +-{ +- MMTBX_ASSERT(fo.size()==fc1.size()); +- MMTBX_ASSERT(fo.size()==fc2.size()); +- af::shared fc_abs(fo.size()); +- for(std::size_t i=0; i < fo.size(); i++) { +- FloatType fc_abs1 = std::abs(fc1[i]); +- FloatType fc_abs2 = std::abs(fc2[i]); +- fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ +- twin_fraction *fc_abs2*fc_abs2); +- } +- FloatType sc = scale(fo,fc_abs.const_ref()); +- return r_factor(fo,fc_abs.const_ref(),sc); +-}; +- +-template +-FloatType +-r_factor( +- af::const_ref const& fo, +- af::const_ref< std::complex > const& fc1, +- af::const_ref< std::complex > const& fc2, +- FloatType const& twin_fraction, +- FloatType const& scale) +-{ +- MMTBX_ASSERT(fo.size()==fc1.size()); +- MMTBX_ASSERT(fo.size()==fc2.size()); +- af::shared fc_abs(fo.size()); +- for(std::size_t i=0; i < fo.size(); i++) { +- FloatType fc_abs1 = std::abs(fc1[i]); +- FloatType fc_abs2 = std::abs(fc2[i]); +- fc_abs[i]=std::sqrt((1-twin_fraction)*fc_abs1*fc_abs1+ +- twin_fraction *fc_abs2*fc_abs2); +- } +- return r_factor(fo,fc_abs.const_ref(),scale); +-}; +- +-//------------------------------------------------------------------------------ + + template + void diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0005-fix-for-gcc4.7-compilation-error.patch b/sci-libs/cctbx/files/2012.05.08.2305/0005-fix-for-gcc4.7-compilation-error.patch new file mode 100644 index 0000000..f2b9523 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0005-fix-for-gcc4.7-compilation-error.patch @@ -0,0 +1,83 @@ +From: Radostan Riedel +Date: Mon, 9 Jul 2012 19:58:46 +0200 +Subject: fix for gcc4.7 compilation error + +--- + .../scitbx/math/boost_python/distributions.cpp | 60 +++++++++++++------- + 1 file changed, 41 insertions(+), 19 deletions(-) + +diff --git a/cctbx_sources/scitbx/math/boost_python/distributions.cpp b/cctbx_sources/scitbx/math/boost_python/distributions.cpp +index e430cad..3d16a9c 100644 +--- a/cctbx_sources/scitbx/math/boost_python/distributions.cpp ++++ b/cctbx_sources/scitbx/math/boost_python/distributions.cpp +@@ -75,29 +75,51 @@ namespace { + { + typedef Distribution wt; + ++ #define NEW_MEMBER(name) \ ++ static FloatType name(wt const &self) { \ ++ return boost::math::name(self); \ ++ } ++ ++ NEW_MEMBER(mean); ++ NEW_MEMBER(median); ++ NEW_MEMBER(mode); ++ NEW_MEMBER(variance); ++ NEW_MEMBER(standard_deviation); ++ NEW_MEMBER(skewness); ++ NEW_MEMBER(kurtosis); ++ ++ #undef NEW_MEMBER ++ ++ #define NEW_MEMBER(name) \ ++ static FloatType name(wt const &self, FloatType arg) { \ ++ return boost::math::name(self, arg); \ ++ } ++ ++ NEW_MEMBER(pdf); ++ NEW_MEMBER(cdf); ++ NEW_MEMBER(quantile); ++ ++ #undef NEW_MEMBER ++ ++ static scitbx::af::shared quantiles(wt const &self, std::size_t n) { ++ return scitbx::math::quantiles(self, n); ++ } ++ + static void + wrap() + { + using namespace boost::python; +- def("mean", (FloatType(*)(wt const&)) boost::math::mean); +- def("median", (FloatType(*)(wt const&)) boost::math::median); +- def("mode", (FloatType(*)(wt const&)) boost::math::mode); +- def("variance", (FloatType(*)(wt const&)) boost::math::variance); +- def("standard_deviation", +- (FloatType(*)(wt const&)) boost::math::standard_deviation); +- def("skewness", (FloatType(*)(wt const&)) boost::math::skewness); +- def("kurtosis", (FloatType(*)(wt const&)) boost::math::kurtosis); +- def("pdf", (FloatType(*)(wt const&, FloatType const&)) boost::math::pdf); +- def("cdf", (FloatType(*)(wt const&, FloatType const&)) boost::math::cdf); +- def("quantile", (FloatType(*)(wt const&, FloatType const&)) +- boost::math::quantile); +- def("quantiles", +-#if BOOST_WORKAROUND(__EDG_VERSION__, BOOST_TESTED_AT(306)) +- (scitbx::af::shared(*)(wt const&, std::size_t)) quantiles +-#else +- quantiles +-#endif +- ); ++ def("mean" , mean); ++ def("median" , median); ++ def("mode" , mode); ++ def("variance" , variance); ++ def("standard_deviation", standard_deviation); ++ def("skewness" , skewness); ++ def("kurtosis" , kurtosis); ++ def("pdf" , pdf); ++ def("cdf" , cdf); ++ def("quantile" , quantile); ++ def("quantiles" , quantiles); + } + }; + diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0006-options-for-system-libs-installtarget-and-prefix.patch b/sci-libs/cctbx/files/2012.05.08.2305/0006-options-for-system-libs-installtarget-and-prefix.patch new file mode 100644 index 0000000..a3a6dd8 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0006-options-for-system-libs-installtarget-and-prefix.patch @@ -0,0 +1,1080 @@ +From: Radostan Riedel +Date: Mon, 23 Jul 2012 18:28:04 +0200 +Subject: options for system libs installtarget and prefix + +--- + cctbx_sources/boost_adaptbx/SConscript | 26 +- + cctbx_sources/cbflib_adaptbx/SConscript | 89 +++--- + .../detectors/boost_python/SConscript | 4 +- + cctbx_sources/ccp4io_adaptbx/SConscript | 284 ++++++++++---------- + cctbx_sources/cctbx/SConscript | 2 +- + cctbx_sources/clipper_adaptbx/SConscript | 94 ++++--- + cctbx_sources/clipper_adaptbx/clipper/SConscript | 10 +- + cctbx_sources/gltbx/SConscript | 20 +- + cctbx_sources/iotbx/cif/boost_python/SConscript | 13 +- + cctbx_sources/iotbx/mtz/SConscript | 3 +- + cctbx_sources/iotbx/pdb/SConscript | 2 +- + cctbx_sources/libtbx/SConscript | 86 +++++- + cctbx_sources/libtbx/env_config.py | 34 +++ + cctbx_sources/mmtbx/den/SConscript | 2 +- + cctbx_sources/mmtbx/geometry_restraints/SConscript | 2 +- + cctbx_sources/mmtbx/secondary_structure/SConscript | 2 +- + cctbx_sources/rstbx/SConscript | 2 +- + cctbx_sources/scitbx/SConscript | 2 +- + cctbx_sources/scitbx/boost_python/SConscript | 4 +- + .../smtbx/refinement/boost_python/SConscript | 4 +- + .../refinement/constraints/boost_python/SConscript | 4 +- + cctbx_sources/spotfinder/SConscript | 2 +- + 22 files changed, 431 insertions(+), 260 deletions(-) + +diff --git a/cctbx_sources/boost_adaptbx/SConscript b/cctbx_sources/boost_adaptbx/SConscript +index 866b1c1..68cac89 100644 +--- a/cctbx_sources/boost_adaptbx/SConscript ++++ b/cctbx_sources/boost_adaptbx/SConscript +@@ -9,7 +9,13 @@ import sys, os + op = os.path + Import("env_base", "env_etc") + env_etc.boost_dist = libtbx.env.dist_path("boost") +-env_etc.boost_include = env_etc.boost_dist ++if not env_etc.check_syslib(env_etc.boost_python, extra_libs=env_etc.py_lib)\ ++ or not env_etc.check_syslib('boost_thread'): ++ env_etc.boost_include = env_etc.boost_dist ++else: ++ # This way the compiler looks in the standard location for includes ++ # should work on all platforms. ++ env_etc.boost_include = '' + env_etc.boost_adaptbx_dist = libtbx.env.dist_path("boost_adaptbx") + env_etc.boost_adaptbx_include = os.path.dirname(env_etc.boost_adaptbx_dist) + +@@ -35,9 +41,10 @@ def build_boost_thread(): + lo="boost/libs/thread/src/libboost_thread.lo", + dylib="lib/libboost_thread.dylib") + env.Repository(os.path.dirname(env_etc.boost_dist)) +- env.SharedLibrary( +- target='#lib/boost_thread', +- source=source) ++ if not env_etc.check_syslib('boost_thread'): ++ env.SharedLibrary( ++ target='#lib/boost_thread', ++ source=source) + + build_boost_thread() + +@@ -50,7 +57,7 @@ if (not env_etc.no_boost_python): + env_no_includes_boost_python_ext = env_base.Clone( + SHLINKFLAGS=env_etc.shlinkflags_bpl, + SHLIBPREFIX="", +- LIBS=["boost_python"] + env_etc.libs_python + env_etc.libm) ++ LIBS=[env_etc.boost_python] + env_etc.libs_python + env_etc.libm) + env_no_includes_boost_python_ext.Append( + LIBPATH=env_etc.libpath_python) + env_no_includes_boost_python_ext.Append( +@@ -235,10 +242,11 @@ object/function_doc_signature.cpp + bpl_dll_sources = [os.path.join(prefix, path) for path in bpl_dll_sources] + # + env.Repository(os.path.dirname(env_etc.boost_dist)) +- if (env_etc.static_bpl): +- env.StaticLibrary(target="#lib/boost_python", source=bpl_dll_sources) +- else: +- env.SharedLibrary(target="#lib/boost_python", source=bpl_dll_sources) ++ if not env_etc.check_syslib(env_etc.boost_python, extra_libs=env_etc.py_lib): ++ if (env_etc.static_bpl): ++ env.StaticLibrary(target="#lib/boost_python", source=bpl_dll_sources) ++ else: ++ env.SharedLibrary(target="#lib/boost_python", source=bpl_dll_sources) + if (bool(int(ARGUMENTS.get("boost_python_tests", "0")))): + warn_if_unexpected_md5_hexdigest( + path=libtbx.env.under_dist("boost", "libs/python/test/Jamfile.v2"), +diff --git a/cctbx_sources/cbflib_adaptbx/SConscript b/cctbx_sources/cbflib_adaptbx/SConscript +index 4ac6717..334cfc2 100644 +--- a/cctbx_sources/cbflib_adaptbx/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/SConscript +@@ -3,9 +3,14 @@ import os + Import("env_base","env_etc") + + env_etc.cbflib_dist = libtbx.env.dist_path("cbflib") +-env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), +- env_etc.norm_join(env_etc.cbflib_dist,"include"), +- ] ++if not env_etc.check_syslib('cbf'): ++ env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), ++ env_etc.norm_join(env_etc.cbflib_dist,"include"), ++ ] ++else: ++ env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), ++ "", ++ ] + env_etc.cbflib_adaptbx_dist = libtbx.env.dist_path("cbflib_adaptbx") + + env_etc.cbflib_common_includes = [ +@@ -34,39 +39,47 @@ cbflib_092_forward = [] + if os.path.isfile( os.path.join(env_etc.cbflib_dist,"src","cbf_ws.c") ): + cbflib_092_forward.append("src/cbf_ws.c") + +-env.StaticLibrary(target='#lib/cbf', +- source = [prefix+"/"+s for s in [ +- "examples/img.c", +- "src/cbf.c", +- "src/cbf_alloc.c", +- "src/cbf_ascii.c", +- "src/cbf_binary.c", +- "src/cbf_byte_offset.c", +- "src/cbf_canonical.c", +- "src/cbf_codes.c", +- "src/cbf_compress.c", +- "src/cbf_context.c", +- "src/cbf_file.c", +- "src/cbf_lex.c", +- "src/cbf_packed.c", +- "src/cbf_predictor.c", +- "src/cbf_read_binary.c", +- "src/cbf_read_mime.c", +- "src/cbf_simple.c", +- "src/cbf_string.c", +- "src/cbf_stx.c", +- "src/cbf_tree.c", +- "src/cbf_uncompressed.c", +- "src/cbf_write.c", +- "src/cbf_write_binary.c", +- "src/md5c.c", +- ] + cbflib_092_forward ] + [ +- "detectors/mar_adaptor.cpp", +- "detectors/cbf_adaptor.cpp", +- "detectors/cbf_byte_offset_optimized.cpp", +- "detectors/buffer_based_service.cpp", +- ], +- CPPPATH=env_etc.cbflib_common_includes ) ++cbflib_src = ["src/cbf.c", ++ "src/cbf_alloc.c", ++ "src/cbf_ascii.c", ++ "src/cbf_binary.c", ++ "src/cbf_byte_offset.c", ++ "src/cbf_canonical.c", ++ "src/cbf_codes.c", ++ "src/cbf_compress.c", ++ "src/cbf_context.c", ++ "src/cbf_file.c", ++ "src/cbf_lex.c", ++ "src/cbf_packed.c", ++ "src/cbf_predictor.c", ++ "src/cbf_read_binary.c", ++ "src/cbf_read_mime.c", ++ "src/cbf_simple.c", ++ "src/cbf_string.c", ++ "src/cbf_stx.c", ++ "src/cbf_tree.c", ++ "src/cbf_uncompressed.c", ++ "src/cbf_write.c", ++ "src/cbf_write_binary.c", ++ "src/md5c.c", ++ ] ++adaptor_src = ["detectors/mar_adaptor.cpp", ++ "detectors/cbf_adaptor.cpp", ++ "detectors/cbf_byte_offset_optimized.cpp", ++ "detectors/buffer_based_service.cpp", ++ ] ++if not env_etc.check_syslib('cbf'): ++ env.StaticLibrary(target='#lib/cbf', ++ source = [prefix+"/"+s for s in [ ++ "examples/img.c"] + cbflib_src + cbflib_092_forward] + adaptor_src, ++ CPPPATH=env_etc.cbflib_common_includes ) ++ env_etc.cbf_lib = ['cbf',] ++else: ++ env.StaticLibrary(target='#lib/cbf_adaptor', ++ source = [prefix+"/"+s for s in [ ++ "examples/img.c"]] + adaptor_src, ++ CPPPATH=env_etc.cbflib_common_includes ) ++ env_etc.cbf_lib = ['cbf','cbf_adaptor'] + + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") +@@ -80,7 +93,7 @@ if (not env_etc.no_boost_python): + env_cbflib_boost_python_ext.SharedLibrary( + target='#lib/_pycbf', + source=[prefix+"/pycbf/pycbf_wrap.c"], +- LIBS=["cbf"]+env_etc.libs_python+env_etc.libm) ++ LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) + + Export("env_cbflib_boost_python_ext") + +@@ -89,7 +102,7 @@ if (not env_etc.no_boost_python): + env_standalone = env.Clone( + LIBS = [env_etc.libm,],CPPPATH=env_etc.cbflib_common_includes + ) +-env_standalone.Prepend(LIBS=["cbf",]) ++env_standalone.Prepend(LIBS=env_etc.cbf_lib) + + for source in ["detectors/tst_memory",]: + target = "cbflib."+os.path.basename(source) +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript +index 2027439..8e987cc 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript +@@ -1,6 +1,6 @@ +-Import("env_cbflib_boost_python_ext") ++Import("env_cbflib_boost_python_ext", "env_etc") + env = env_cbflib_boost_python_ext.Clone() +-env.Prepend(LIBS=["cbf",]) ++env.Prepend(LIBS=env_etc.cbf_lib) + env.SharedLibrary( + target="#lib/cbflib_ext", + source=["cbflib_ext.cpp",]) +diff --git a/cctbx_sources/ccp4io_adaptbx/SConscript b/cctbx_sources/ccp4io_adaptbx/SConscript +index f55cc92..01600d6 100644 +--- a/cctbx_sources/ccp4io_adaptbx/SConscript ++++ b/cctbx_sources/ccp4io_adaptbx/SConscript +@@ -36,118 +36,152 @@ else: + # clean out after completely removing support for + # old CCP4 directory structure above + +-build_ccp4io_adaptbx = libtbx.env.under_build("ccp4io_adaptbx") +-if (not op.isdir(build_ccp4io_adaptbx)): +- os.mkdir(build_ccp4io_adaptbx) +- assert op.isdir(build_ccp4io_adaptbx) +- +-def replace_printf(file_name): +- full_path = op.join(path_lib_src, file_name) +- if (not op.isfile(full_path)): +- full_path = op.join(op.dirname(path_lib_src), "fortran", file_name) +- result = ["#include "] +- for line in open(full_path).read().splitlines(): +- for key in ["printf", "fprintf"]: +- matches = list(re.finditer( +- pattern="[^A-Za-z0-9_]%s[^A-Za-z0-9_]" % key, string=line)) +- if (len(matches) != 0): +- for m in reversed(matches): +- s,e = m.start(), m.end() +- line = line[:s] \ +- + line[s:e].replace(key, "ccp4io_%s" % key) \ +- + line[e:] +- result.append(line) +- return "\n".join(result) +- +-env = env_base.Clone( +- SHLINKFLAGS=env_etc.shlinkflags) +-env.Append(CCFLAGS=env_etc.ccp4io_defines) +-env.Append(SHCCFLAGS=env_etc.ccp4io_defines) +-env_etc.include_registry.append( +- env=env, +- paths=[ +- "#", +- op.dirname(env_etc.ccp4io_include), +- env_etc.ccp4io_include, +- op.join(env_etc.ccp4io_dist, "lib", mmdb_src), +- op.join(env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb")]) +-env.Append(LIBS=env_etc.libm) +-if ( op.normcase(op.dirname(env_etc.ccp4io_dist)) +- != op.normcase("ccp4io")): +- env.Repository(op.dirname(env_etc.ccp4io_dist)) + source = [] +- + c_files = [] +-c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ +-library_err.c +-library_file.c +-library_utils.c +-ccp4_array.c +-ccp4_parser.c +-ccp4_unitcell.c +-cvecmat.c +-cmtzlib.c +-""".splitlines()]) +-open(op.join(build_ccp4io_adaptbx, "csymlib.c"), "w").write( +- open(op.join(path_lib_src, "csymlib.c")).read() +- .replace( +- "static int reported_syminfo = 0", +- "static int reported_syminfo = 1")) +-source.append(op.join("#ccp4io_adaptbx", "csymlib.c")) ++if not env_etc.check_syslib('ccp4c')\ ++ or not env_etc.check_syslib('mmdb'): ++ build_ccp4io_adaptbx = libtbx.env.under_build("ccp4io_adaptbx") ++ if (not op.isdir(build_ccp4io_adaptbx)): ++ os.mkdir(build_ccp4io_adaptbx) ++ assert op.isdir(build_ccp4io_adaptbx) ++ ++ def replace_printf(file_name): ++ full_path = op.join(path_lib_src, file_name) ++ if (not op.isfile(full_path)): ++ full_path = op.join(op.dirname(path_lib_src), "fortran", file_name) ++ result = ["#include "] ++ for line in open(full_path).read().splitlines(): ++ for key in ["printf", "fprintf"]: ++ matches = list(re.finditer( ++ pattern="[^A-Za-z0-9_]%s[^A-Za-z0-9_]" % key, string=line)) ++ if (len(matches) != 0): ++ for m in reversed(matches): ++ s,e = m.start(), m.end() ++ line = line[:s] \ ++ + line[s:e].replace(key, "ccp4io_%s" % key) \ ++ + line[e:] ++ result.append(line) ++ return "\n".join(result) ++ env = env_base.Clone( ++ SHLINKFLAGS=env_etc.shlinkflags) ++ env.Append(CCFLAGS=env_etc.ccp4io_defines) ++ env.Append(SHCCFLAGS=env_etc.ccp4io_defines) ++ env_etc.include_registry.append( ++ env=env, ++ paths=[ ++ "#", ++ op.dirname(env_etc.ccp4io_include), ++ env_etc.ccp4io_include, ++ op.join(env_etc.ccp4io_dist, "lib", mmdb_src), ++ op.join(env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb")]) ++ env.Append(LIBS=env_etc.libm) ++ if ( op.normcase(op.dirname(env_etc.ccp4io_dist)) ++ != op.normcase("ccp4io")): ++ env.Repository(op.dirname(env_etc.ccp4io_dist)) + +-probe_file_name = op.join(path_lib_src, "cmaplib.h") +-env_etc.ccp4io_has_cmaplib = op.isfile(probe_file_name) +-if (env_etc.ccp4io_has_cmaplib): + c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ +-cmap_accessor.c +-cmap_close.c +-cmap_data.c +-cmap_header.c +-cmap_labels.c +-cmap_open.c +-cmap_skew.c +-cmap_stats.c +-cmap_symop.c +-""".splitlines()]) ++ library_err.c ++ library_file.c ++ library_utils.c ++ ccp4_array.c ++ ccp4_parser.c ++ ccp4_unitcell.c ++ cvecmat.c ++ cmtzlib.c ++ """.splitlines()]) ++ open(op.join(build_ccp4io_adaptbx, "csymlib.c"), "w").write( ++ open(op.join(path_lib_src, "csymlib.c")).read() ++ .replace( ++ "static int reported_syminfo = 0", ++ "static int reported_syminfo = 1")) ++ source.append(op.join("#ccp4io_adaptbx", "csymlib.c")) + +-c_files.extend(["%s/mmdb/%s.cpp" % ( mmdb_src, bn ) for bn in """\ +-bfgs_min +-file_ +-hybrid_36 +-linalg_ +-machine_ +-math_ +-mattype_ +-mmdb_align +-mmdb_atom +-mmdb_bondmngr +-mmdb_chain +-mmdb_cifdefs +-mmdb_coormngr +-mmdb_cryst +-mmdb_ficif +-mmdb_file +-mmdb_graph +-mmdb_manager +-mmdb_mask +-mmdb_mmcif +-mmdb_model +-mmdb_rwbrook +-mmdb_sbase +-mmdb_sbase0 +-mmdb_selmngr +-mmdb_symop +-mmdb_tables +-mmdb_title +-mmdb_uddata +-mmdb_utils +-mmdb_xml +-random_n +-stream_ +-""".splitlines()]) +-prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib") +-for file_name in c_files: +- source.append(op.join(prefix, file_name)) ++ probe_file_name = op.join(path_lib_src, "cmaplib.h") ++ env_etc.ccp4io_has_cmaplib = op.isfile(probe_file_name) ++ if (env_etc.ccp4io_has_cmaplib): ++ c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ ++ cmap_accessor.c ++ cmap_close.c ++ cmap_data.c ++ cmap_header.c ++ cmap_labels.c ++ cmap_open.c ++ cmap_skew.c ++ cmap_stats.c ++ cmap_symop.c ++ """.splitlines()]) ++ ++ c_files.extend(["%s/mmdb/%s.cpp" % ( mmdb_src, bn ) for bn in """\ ++ bfgs_min ++ file_ ++ hybrid_36 ++ linalg_ ++ machine_ ++ math_ ++ mattype_ ++ mmdb_align ++ mmdb_atom ++ mmdb_bondmngr ++ mmdb_chain ++ mmdb_cifdefs ++ mmdb_coormngr ++ mmdb_cryst ++ mmdb_ficif ++ mmdb_file ++ mmdb_graph ++ mmdb_manager ++ mmdb_mask ++ mmdb_mmcif ++ mmdb_model ++ mmdb_rwbrook ++ mmdb_sbase ++ mmdb_sbase0 ++ mmdb_selmngr ++ mmdb_symop ++ mmdb_tables ++ mmdb_title ++ mmdb_uddata ++ mmdb_utils ++ mmdb_xml ++ random_n ++ stream_ ++ """.splitlines()]) ++ prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib") ++ for file_name in c_files: ++ source.append(op.join(prefix, file_name)) ++ ++ need_f_c = ( ++ libtbx.env.has_module("solve_resolve") ++ or libtbx.env.find_in_repositories(relative_path="mosflm_fable")) ++ if (need_f_c or os.name != "nt"): ++ source.append(op.join("#ccp4io_adaptbx", "fortran_call_stubs.c")) ++ for file_name in """\ ++ ccp4_diskio_f.c ++ ccp4_general.c ++ ccp4_general_f.c ++ ccp4_parser_f.c ++ ccp4_program.c ++ ccp4_unitcell_f.c ++ cmaplib_f.c ++ cmtzlib_f.c ++ csymlib_f.c ++ library_f.c ++ """.splitlines(): ++ open(op.join(build_ccp4io_adaptbx, file_name), "w").write( ++ replace_printf(file_name=file_name)) ++ source.append(op.join("#ccp4io_adaptbx", file_name)) ++ source.append(op.join("#ccp4io_adaptbx", "printf_wrappers.c")) ++ env_etc.ccp4io_lib = "ccp4io" ++ mmdb_path= [ os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src ), ++ os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb" ), ++ ] ++else: ++ env = env_base.Clone( ++ SHLINKFLAGS=env_etc.shlinkflags) ++ env.Append(CCFLAGS=env_etc.ccp4io_defines) ++ env.Append(SHCCFLAGS=env_etc.ccp4io_defines) ++ env_etc.ccp4io_lib = ["ccp4io", "mmdb", "ccp4c"] ++ mmdb_path= [] + + ssm_prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib", "ssm") + ssm_sources = """\ +@@ -159,46 +193,20 @@ ssm_superpose.cpp + """.splitlines() + source.extend( [ op.join( ssm_prefix, f ) for f in ssm_sources ] ) + +-need_f_c = ( +- libtbx.env.has_module("solve_resolve") +- or libtbx.env.find_in_repositories(relative_path="mosflm_fable")) +-if (need_f_c or os.name != "nt"): +- source.append(op.join("#ccp4io_adaptbx", "fortran_call_stubs.c")) +- for file_name in """\ +-ccp4_diskio_f.c +-ccp4_general.c +-ccp4_general_f.c +-ccp4_parser_f.c +-ccp4_program.c +-ccp4_unitcell_f.c +-cmaplib_f.c +-cmtzlib_f.c +-csymlib_f.c +-library_f.c +-""".splitlines(): +- open(op.join(build_ccp4io_adaptbx, file_name), "w").write( +- replace_printf(file_name=file_name)) +- source.append(op.join("#ccp4io_adaptbx", file_name)) +- source.append(op.join("#ccp4io_adaptbx", "printf_wrappers.c")) +- + # static library for solve_resolve + env.StaticLibrary(target='#lib/ccp4io', source=source) +-env_etc.ccp4io_lib = "ccp4io" + + if ( libtbx.env.has_module("boost") + and not env_etc.no_boost_python): + Import( "env_no_includes_boost_python_ext" ) + sources = [ "#ccp4io_adaptbx/ext.cpp" ] + env_ext = env_no_includes_boost_python_ext.Clone() +- env_ext.Prepend( LIBS = "ccp4io" ) ++ env_ext.Prepend( LIBS = env_etc.ccp4io_lib ) + env_etc.include_registry.append( + env = env_ext, +- paths = [ +- os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src ), +- os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb" ), +- os.path.join( env_etc.ccp4io_dist, "lib", "ssm"), +- env_etc.boost_include, +- env_etc.python_include, +- ] ++ paths = mmdb_path + [ os.path.join( env_etc.ccp4io_dist, "lib", "ssm"), ++ env_etc.boost_include, ++ env_etc.python_include, ++ ] + ) + env_ext.SharedLibrary( target = "#lib/ccp4io_adaptbx_ext", source = sources ) +diff --git a/cctbx_sources/cctbx/SConscript b/cctbx_sources/cctbx/SConscript +index af767ae..6ce770c 100644 +--- a/cctbx_sources/cctbx/SConscript ++++ b/cctbx_sources/cctbx/SConscript +@@ -106,7 +106,7 @@ if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + + env_cctbx_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_cctbx_boost_python_ext.Prepend(LIBS=["scitbx_boost_python"]) ++ env_cctbx_boost_python_ext.Prepend(LIBS=[env_etc.scitbx_boost_python]) + env_etc.include_registry.append( + env=env_cctbx_boost_python_ext, + paths=env_etc.cctbx_common_includes + [env_etc.python_include]) +diff --git a/cctbx_sources/clipper_adaptbx/SConscript b/cctbx_sources/clipper_adaptbx/SConscript +index 9cce49e..c39047f 100644 +--- a/cctbx_sources/clipper_adaptbx/SConscript ++++ b/cctbx_sources/clipper_adaptbx/SConscript +@@ -3,54 +3,63 @@ Import("env_base", "env_etc") + + env_etc.clipper_dist = libtbx.env.dist_path("clipper") + env_etc.clipper_include = env_etc.clipper_dist ++# This way the compiler looks in the standard location for includes ++# should work on all platforms ++env_etc.clipper_sysinclude = '' + + env = env_base.Clone( + SHLINKFLAGS=env_etc.shlinkflags, + LIBS=env_etc.libm) +-env.Prepend(CPPPATH=[env_etc.clipper_include]) +- +-if (env_etc.static_libraries): builder = env.StaticLibrary +-else: builder = env.SharedLibrary +-builder(target='#lib/clipper', +- source = ["../clipper/clipper/core/"+file_name for file_name in """ +- atomsf.cpp +- cell.cpp +- clipper_memory.cpp +- clipper_message.cpp +- clipper_stats.cpp +- clipper_types.cpp +- clipper_util.cpp +- container.cpp +- container_hkl.cpp +- container_map.cpp +- container_types.cpp +- coords.cpp +- derivs.cpp +- hkl_compute.cpp +- hkl_data.cpp +- hkl_datatypes.cpp +- hkl_info.cpp +- hkl_lookup.cpp +- hkl_operators.cpp +- map_interp.cpp +- map_utils.cpp +- nxmap.cpp +- nxmap_operator.cpp +- ramachandran.cpp +- resol_basisfn.cpp +- resol_fn.cpp +- resol_targetfn.cpp +- rotation.cpp +- spacegroup.cpp +- spacegroup_data.cpp +- symop.cpp +- xmap.cpp +-""".split()]) +-# fftmap_sparse.cpp +-# fftmap.cpp ++if env_etc.check_syslib('clipper-core') and \ ++ env_etc.check_syslib('clipper-contrib'): ++ env.Prepend(CPPPATH=[env_etc.clipper_sysinclude]) ++ env_etc.clipper_libs=['clipper-core', 'clipper-contrib'] ++ env_etc.has_clipper_contrib = True ++else: ++ env.Prepend(CPPPATH=[env_etc.clipper_include]) ++ env_etc.clipper_libs=['clipper',] ++ if (env_etc.static_libraries): builder = env.StaticLibrary ++ else: builder = env.SharedLibrary ++ builder(target='#lib/'+env_etc.clipper_libs[0], ++ source = ["../clipper/clipper/core/"+file_name for file_name in """ ++ atomsf.cpp ++ cell.cpp ++ clipper_memory.cpp ++ clipper_message.cpp ++ clipper_stats.cpp ++ clipper_types.cpp ++ clipper_util.cpp ++ container.cpp ++ container_hkl.cpp ++ container_map.cpp ++ container_types.cpp ++ coords.cpp ++ derivs.cpp ++ hkl_compute.cpp ++ hkl_data.cpp ++ hkl_datatypes.cpp ++ hkl_info.cpp ++ hkl_lookup.cpp ++ hkl_operators.cpp ++ map_interp.cpp ++ map_utils.cpp ++ nxmap.cpp ++ nxmap_operator.cpp ++ ramachandran.cpp ++ resol_basisfn.cpp ++ resol_fn.cpp ++ resol_targetfn.cpp ++ rotation.cpp ++ spacegroup.cpp ++ spacegroup_data.cpp ++ symop.cpp ++ xmap.cpp ++ """.split()]) ++ # fftmap_sparse.cpp ++ # fftmap.cpp + + env_exe = env.Clone() +-env_exe.Prepend(LIBS=["clipper"]) ++env_exe.Prepend(LIBS=[env_etc.clipper_libs[0]]) + + exe = env_exe.Program( + target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' +@@ -77,6 +86,7 @@ if (hasattr(env_etc, "cctbx_include")): + env=env_clipper_boost_python_ext, + paths=[ + env_etc.clipper_include, ++ env_etc.clipper_sysinclude, + env_etc.libtbx_include, + env_etc.cctbx_include, + env_etc.scitbx_include, +diff --git a/cctbx_sources/clipper_adaptbx/clipper/SConscript b/cctbx_sources/clipper_adaptbx/clipper/SConscript +index 9f79f83..1911eb1 100644 +--- a/cctbx_sources/clipper_adaptbx/clipper/SConscript ++++ b/cctbx_sources/clipper_adaptbx/clipper/SConscript +@@ -1,6 +1,10 @@ +-Import("env_clipper_boost_python_ext") ++Import("env_clipper_boost_python_ext", "env_etc") + env = env_clipper_boost_python_ext.Clone() +-env.Prepend(LIBS=["clipper", "cctbx"]) ++env.Prepend(LIBS=env_etc.clipper_libs+["cctbx"]) ++if (env_etc.has_clipper_contrib): ++ clipper_contrib_files = [] ++else: ++ clipper_contrib_files = ["../../clipper/clipper/contrib/sfweight.cpp",] + env.SharedLibrary( + target="#lib/clipper_ext", + source=[ +@@ -8,4 +12,4 @@ env.SharedLibrary( + "hendrickson_lattman_bpl.cpp", + "sigmaa_bpl.cpp", + "../../clipper/clipper/contrib/sfweight.cpp", +- "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]) ++ "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]+clipper_contrib_files) +diff --git a/cctbx_sources/gltbx/SConscript b/cctbx_sources/gltbx/SConscript +index 4b2213d..04e0654 100644 +--- a/cctbx_sources/gltbx/SConscript ++++ b/cctbx_sources/gltbx/SConscript +@@ -12,14 +12,15 @@ env_etc.gltbx_common_includes = [ + env_etc.scitbx_include, + env_etc.boost_include, + ] +-if (gl2ps_path is not None): +- env_etc.gltbx_common_includes.append(gl2ps_path) ++if not env_etc.check_syslib('gl2ps', extra_libs='GL'): ++ if (gl2ps_path is not None): ++ env_etc.gltbx_common_includes.append(gl2ps_path) + + if (not env_etc.no_boost_python): + Import("env_base", "env_no_includes_boost_python_ext") + trial_env = env_base.Clone() + env = env_no_includes_boost_python_ext.Clone() +- env.Prepend(LIBS=["scitbx_boost_python"]) ++ env.Prepend(LIBS=[env_etc.scitbx_boost_python]) + if (env_etc.compiler == "win32_cl"): + for e in [trial_env, env]: + e.Append(LIBS=["glu32", "opengl32"]) +@@ -79,10 +80,15 @@ if (not env_etc.no_boost_python): + source=source) + env_util = env + source = ["util_ext.cpp"] +- if (gl2ps_path is not None): +- source.append("#gui_resources/gl2ps/gl2ps.c") +- env_util = env.Clone() +- env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ if not env_etc.check_syslib('gl2ps', extra_libs='GL'): ++ if (gl2ps_path is not None): ++ source.append("#gui_resources/gl2ps/gl2ps.c") ++ env_util = env.Clone() ++ env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ else: ++ env_util = env.Clone() ++ env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ env_util.Append(LIBS=["gl2ps"]) + env_util.SharedLibrary( + target="#lib/gltbx_util_ext", + source=source) +diff --git a/cctbx_sources/iotbx/cif/boost_python/SConscript b/cctbx_sources/iotbx/cif/boost_python/SConscript +index 49837af..2833ff1 100644 +--- a/cctbx_sources/iotbx/cif/boost_python/SConscript ++++ b/cctbx_sources/iotbx/cif/boost_python/SConscript +@@ -34,15 +34,18 @@ antlr3_src_files = [ + ] + + prefix = "#ucif/antlr3/src" +-source = [os.path.join(prefix, file_name) for file_name in antlr3_src_files] ++if not env_etc.check_syslib('antlr3c'): ++ source = [os.path.join(prefix, file_name) for file_name in antlr3_src_files] ++ env_etc.include_registry.append( ++ env=env, ++ paths=[antlr3_include, antlr3_dist]) ++else: ++ source = [] ++ env.Append(LIBS=['antlr3c']) + source.extend([ + "cif_ext.cpp", + "#ucif/cifParser.cpp", + "#ucif/cifLexer.cpp", + ]) + +-env_etc.include_registry.append( +- env=env, +- paths=[antlr3_include, antlr3_dist]) +- + env.SharedLibrary(target="#lib/iotbx_cif_ext", source=source) +diff --git a/cctbx_sources/iotbx/mtz/SConscript b/cctbx_sources/iotbx/mtz/SConscript +index c0a4bb0..cd539e6 100644 +--- a/cctbx_sources/iotbx/mtz/SConscript ++++ b/cctbx_sources/iotbx/mtz/SConscript +@@ -22,7 +22,8 @@ if (not env_etc.no_boost_python): + env = env_iotbx_boost_python_ext.Clone() + env.Append(CXXFLAGS=env_etc.ccp4io_defines) + env.Append(SHCXXFLAGS=env_etc.ccp4io_defines) +- env.Prepend(LIBS=["iotbx_mtz", "cctbx", ccp4io_lib, "scitbx_boost_python"]) ++ env.Prepend(LIBS=["iotbx_mtz", "cctbx", ccp4io_lib, ++ env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/iotbx_mtz_ext", +diff --git a/cctbx_sources/iotbx/pdb/SConscript b/cctbx_sources/iotbx/pdb/SConscript +index 6af2664..9b89fe1 100644 +--- a/cctbx_sources/iotbx/pdb/SConscript ++++ b/cctbx_sources/iotbx/pdb/SConscript +@@ -33,7 +33,7 @@ env.Program(target="hybrid_36_fem", source=["hybrid_36_fem.cpp"]) + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["iotbx_pdb", "cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["iotbx_pdb", "cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/iotbx_pdb_ext", +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index debf569..429c44b 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -4,7 +4,7 @@ from libtbx import easy_run + from libtbx.utils import getenv_bool + from libtbx.str_utils import show_string + from libtbx.path import norm_join, full_command_path +-import sys, os ++import sys, os, re + op = os.path + + if (hasattr(Environment, "Clone")): +@@ -1018,4 +1018,88 @@ def enable_cuda_if_possible(): + enable_openmp_if_possible() + enable_cuda_if_possible() + ++env_etc.use_system_libs = False ++def check_syslib(lib, extra_libs=None): ++ """ Check if a system library is available """ ++ if not env_etc.use_system_libs: ++ return False ++ env_syslib = env_base.Clone(LIBS=extra_libs) ++ conf = env_syslib.Configure() ++ if not conf.CheckLib(library=lib): ++ print 'Could not find %s library!'%(lib) ++ conf.Finish() ++ return False ++ else: ++ conf.Finish() ++ return True ++env_etc.check_syslib = check_syslib ++ ++env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) ++ ++if (libtbx.env.build_options.use_system_libs): ++ env_etc.use_system_libs = True ++ ++deb_py_str = '-py%s%s'%(sys.version[0], sys.version[2]) ++gentoo_py_str = '-%s.%s'%(sys.version[0], sys.version[2]) ++# This list can be extended by other distro's ++py_str_lst = [deb_py_str, gentoo_py_str] ++ ++for py_str in py_str_lst: ++ if env_etc.check_syslib('boost_python%s'%py_str, ++ extra_libs=env_etc.py_lib): ++ env_etc.boost_python = 'boost_python%s'%py_str ++ env_etc.scitbx_boost_python = 'scitbx_boost_python%s'%py_str ++ break ++ else: ++ env_etc.boost_python = 'boost_python' ++ env_etc.scitbx_boost_python = 'scitbx_boost_python' ++ ++env_etc.prefix = libtbx.env.build_options.install_prefix ++env_etc.destdir = libtbx.env.build_options.install_destdir ++env_etc.libdir = libtbx.env.build_options.libdir ++env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) ++env_etc.binpath = os.path.join(env_etc.install_path, 'bin') ++env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) ++env_etc.inclpath = os.path.join(env_etc.install_path, 'include') ++env_etc.rpath = os.path.join(env_etc.prefix, 'lib') ++ ++def create_install_targets(): ++ cwd = os.getcwd() ++ rp = libtbx.env.repository_paths ++ lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ exe_dev = libtbx.env.under_build("exe_dev") ++ include_path = libtbx.env.include_path ++ if not os.path.exists(lib_dir): ++ os.makedirs(lib_dir) ++ rp = list(rp) ++ rp.append(lib_dir) ++ rp.append(include_path) ++ for p in rp: ++ if isinstance(p, str): ++ src_dir = p ++ else: ++ src_dir = abs(p) ++ os.chdir(src_dir) ++ dest = None ++ for root, dirnames, filenames in os.walk('.'): ++ for filename in filenames: ++ if re.match('^lib.*\.(so.*|dylib.*|la|a)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-shlib", dest) ++ if re.match('^.*\.(h|hpp)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.inclpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-header", dest) ++ dest = env_etc.binpath ++ env_base.Install(dest, Glob('%s/*'%(exe_dev))) ++ env_base.Alias("install-bin", dest) ++ Alias('install', ['install-header', 'install-shlib', 'install-bin']) ++ os.chdir(cwd) ++ ++if 'install' in COMMAND_LINE_TARGETS: ++ create_install_targets() ++ + Export("env_base", "env_etc") +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index c3e1c7d..0885527 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -701,6 +701,10 @@ Wait for the command to finish, then try again.""" % vars()) + precompile_headers=command_line.options.precompile_headers, + static_libraries=command_line.options.static_libraries, + static_exe=command_line.options.static_exe, ++ use_system_libs=command_line.options.use_system_libs, ++ install_prefix=command_line.options.install_prefix, ++ libdir=command_line.options.libdir, ++ install_destdir=command_line.options.install_destdir, + scan_boost=command_line.options.scan_boost, + write_full_flex_fwd_h=command_line.options.write_full_flex_fwd_h, + boost_python_no_py_signatures +@@ -1759,6 +1763,10 @@ class build_options: + warning_level, + static_libraries, + static_exe, ++ use_system_libs, ++ install_prefix, ++ libdir, ++ install_destdir, + scan_boost, + write_full_flex_fwd_h=default_write_full_flex_fwd_h, + build_boost_python_extensions=default_build_boost_python_extensions, +@@ -1822,6 +1830,10 @@ class build_options: + print >> f, "Boost threads enabled:", self.enable_boost_threads + print >> f, "Enable OpenMP if possible:", self.enable_openmp_if_possible + print >> f, "Enable CUDA:", self.enable_cuda ++ print >> f, "Use System Libraries:", self.use_system_libs ++ print >> f, "Install Prefix:", self.install_prefix ++ print >> f, "Libdir:", self.libdir ++ print >> f, "Install Destdir:", self.install_destdir + print >> f, "Use opt_resources if available:", self.opt_resources + print >> f, "Use environment flags:", self.use_environment_flags + if( self.use_environment_flags ): +@@ -1940,6 +1952,28 @@ class pre_process_args: + action="store_true", + default=False, + help="link all executables statically (implies --static_libraries)") ++ parser.option(None, "--use_system_libs", ++ action="store_true", ++ default=False, ++ help="Use system Libraries to build.") ++ parser.option(None, "--install_destdir", ++ type="string", ++ action="store", ++ default="", ++ help="sets the destdir for the install targets.", ++ metavar="DIRECTORY") ++ parser.option(None, "--libdir", ++ type="string", ++ action="store", ++ default="lib", ++ help="sets the libdir relative to the PREFIX for the install targets. Default: lib", ++ metavar="DIRECTORY") ++ parser.option(None, "--install_prefix", ++ type="string", ++ action="store", ++ default="/usr/local", ++ help="sets the prefix for the install targets. Default: /usr/local", ++ metavar="DIRECTORY") + parser.option(None, "--scan_boost", + action="store_true", + default=False, +diff --git a/cctbx_sources/mmtbx/den/SConscript b/cctbx_sources/mmtbx/den/SConscript +index 2d3ce36..1a2b171 100644 +--- a/cctbx_sources/mmtbx/den/SConscript ++++ b/cctbx_sources/mmtbx/den/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_den_restraints_ext", +diff --git a/cctbx_sources/mmtbx/geometry_restraints/SConscript b/cctbx_sources/mmtbx/geometry_restraints/SConscript +index 222d5f6..e11e5f9 100644 +--- a/cctbx_sources/mmtbx/geometry_restraints/SConscript ++++ b/cctbx_sources/mmtbx/geometry_restraints/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_hbond_restraints_ext", +diff --git a/cctbx_sources/mmtbx/secondary_structure/SConscript b/cctbx_sources/mmtbx/secondary_structure/SConscript +index 7e82b43..5698af5 100644 +--- a/cctbx_sources/mmtbx/secondary_structure/SConscript ++++ b/cctbx_sources/mmtbx/secondary_structure/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_secondary_structure_ext", +diff --git a/cctbx_sources/rstbx/SConscript b/cctbx_sources/rstbx/SConscript +index a1ab8e5..e2958a1 100644 +--- a/cctbx_sources/rstbx/SConscript ++++ b/cctbx_sources/rstbx/SConscript +@@ -39,7 +39,7 @@ if (not env_etc.no_boost_python): + Import("env_boost_python_ext") + env_rstbx_boost_python_ext = env_boost_python_ext.Clone() + env_rstbx_boost_python_ext.Prepend( +- LIBS=["rstbx", "cctbx", "scitbx_boost_python"]) ++ LIBS=["rstbx", "cctbx", env_etc.scitbx_boost_python]) + env_rstbx_boost_python_ext.SharedLibrary( + target="#lib/rstbx_ext", source="ext.cpp") + env_rstbx_boost_python_ext.SharedLibrary( +diff --git a/cctbx_sources/scitbx/SConscript b/cctbx_sources/scitbx/SConscript +index 9199ae0..6045fbc 100644 +--- a/cctbx_sources/scitbx/SConscript ++++ b/cctbx_sources/scitbx/SConscript +@@ -28,7 +28,7 @@ SConscript("sparse/tests/SConscript") + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + env_scitbx_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_scitbx_boost_python_ext.Prepend(LIBS=["scitbx_boost_python"]) ++ env_scitbx_boost_python_ext.Prepend(LIBS=[env_etc.scitbx_boost_python]) + env_etc.include_registry.append( + env=env_scitbx_boost_python_ext, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index eda7b03..1f396e5 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -7,7 +7,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(LIBPATH=env_etc.libpath_python) +-env.Append(LIBS=["boost_python"] + env_etc.libs_python) ++env.Append(LIBS=[env_etc.boost_python] + env_etc.libs_python) + env_etc.include_registry.append( + env=env, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) +@@ -20,5 +20,5 @@ lib_scitbx_boost_python_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + builder( +- target="#lib/scitbx_boost_python", ++ target="#lib/%s"%env_etc.scitbx_boost_python, + source=lib_scitbx_boost_python_sources) +diff --git a/cctbx_sources/smtbx/refinement/boost_python/SConscript b/cctbx_sources/smtbx/refinement/boost_python/SConscript +index 0387e1d..5144996 100644 +--- a/cctbx_sources/smtbx/refinement/boost_python/SConscript ++++ b/cctbx_sources/smtbx/refinement/boost_python/SConscript +@@ -1,6 +1,6 @@ +-Import("env_smtbx_boost_python_ext") ++Import("env_smtbx_boost_python_ext", "env_etc") + env = env_smtbx_boost_python_ext.Clone() +-env.Prepend(LIBS=["smtbx_refinement_constraints", "scitbx_boost_python"]) ++env.Prepend(LIBS=["smtbx_refinement_constraints", env_etc.scitbx_boost_python]) + env.SharedLibrary(target="#lib/smtbx_refinement_least_squares_ext", source=[ + "least_squares_ext.cpp", + "weighting_schemes.cpp", +diff --git a/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript b/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript +index 009d288..1eb176b 100644 +--- a/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript ++++ b/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript +@@ -1,5 +1,5 @@ +-Import("env_smtbx_boost_python_ext") ++Import("env_smtbx_boost_python_ext", "env_etc") + env = env_smtbx_boost_python_ext.Clone() +-env.Prepend(LIBS=["smtbx_refinement_constraints", "scitbx_boost_python"]) ++env.Prepend(LIBS=["smtbx_refinement_constraints", env_etc.scitbx_boost_python]) + env.SharedLibrary(target="#lib/smtbx_refinement_constraints_ext", + source=Glob("*.cpp")) +diff --git a/cctbx_sources/spotfinder/SConscript b/cctbx_sources/spotfinder/SConscript +index 1d280d4..1d73677 100644 +--- a/cctbx_sources/spotfinder/SConscript ++++ b/cctbx_sources/spotfinder/SConscript +@@ -54,7 +54,7 @@ if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + + env_spotfinder_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_spotfinder_boost_python_ext.Prepend(LIBS=[ "scitbx_boost_python"]) ++ env_spotfinder_boost_python_ext.Prepend(LIBS=[ env_etc.scitbx_boost_python ]) + env_etc.include_registry.append( + env=env_spotfinder_boost_python_ext, + paths=env_etc.spotfinder_common_includes + [env_etc.python_include]) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0007-adding-shlib-versioning.patch b/sci-libs/cctbx/files/2012.05.08.2305/0007-adding-shlib-versioning.patch new file mode 100644 index 0000000..fd1888e --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0007-adding-shlib-versioning.patch @@ -0,0 +1,208 @@ +From: Radostan Riedel +Date: Mon, 23 Jul 2012 18:33:07 +0200 +Subject: adding-shlib-versioning + +--- + cctbx_sources/boost_adaptbx/SConscript | 3 + + cctbx_sources/libtbx/SConscript | 115 +++++++++++++++++++++++++++++--- + cctbx_sources/libtbx/env_config.py | 7 ++ + 3 files changed, 116 insertions(+), 9 deletions(-) + +diff --git a/cctbx_sources/boost_adaptbx/SConscript b/cctbx_sources/boost_adaptbx/SConscript +index 68cac89..dedbb05 100644 +--- a/cctbx_sources/boost_adaptbx/SConscript ++++ b/cctbx_sources/boost_adaptbx/SConscript +@@ -58,6 +58,9 @@ if (not env_etc.no_boost_python): + SHLINKFLAGS=env_etc.shlinkflags_bpl, + SHLIBPREFIX="", + LIBS=[env_etc.boost_python] + env_etc.libs_python + env_etc.libm) ++ if (libtbx.env.build_options.libtoolize): ++ # Need to unset libtool since it does not support linking python-ext ++ env_etc.unset_libtool(env_no_includes_boost_python_ext) + env_no_includes_boost_python_ext.Append( + LIBPATH=env_etc.libpath_python) + env_no_includes_boost_python_ext.Append( +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 429c44b..58bdd30 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -1061,16 +1061,99 @@ env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) + env_etc.binpath = os.path.join(env_etc.install_path, 'bin') + env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) + env_etc.inclpath = os.path.join(env_etc.install_path, 'include') +-env_etc.rpath = os.path.join(env_etc.prefix, 'lib') ++env_etc.rpath = os.path.abspath(env_etc.prefix + '/' + env_etc.libdir) ++ ++def set_libtool(env): ++ # Versioning can be provided by appending "-version-info 3:12:1" to SHLINKFLAGS ++ # Please see: ++ # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html ++ # for reference. Otherwise it will be set to 0:0:0 ++ env_etc.shobjsuffix_save = env['SHOBJSUFFIX'] ++ env_etc.SharedLibBuilder_save = env['BUILDERS']['SharedLibrary'] ++ env.Replace( ++ SHLINKFLAGS='-rpath ' + env_etc.rpath, ++ SHOBJSUFFIX='.lo', ++ SHLIBSUFFIX='.la', ++ ) ++ LIBTOOLCOM = 'libtool --mode=compile --tag=' ++ LIBTOOLCCOM = LIBTOOLCOM + 'CC ' ++ LIBTOOLCXXCOM = LIBTOOLCOM + 'CXX ' ++ LIBTOOLLINK = 'libtool --mode=link --tag=CXX ' ++ ShCAction = SCons.Action.Action(LIBTOOLCCOM + "$SHCCCOM", "$SHCCCOMSTR") ++ ShCXXAction = SCons.Action.Action(LIBTOOLCXXCOM + "$SHCXXCOM", "$SHCXXCOMSTR") ++ ShLinkAction = SCons.Action.Action(LIBTOOLLINK + "$SHLINKCOM", "$SHLINKCOMSTR") ++ libtool_install = 'libtool --mode=install install -D ${TARGET.abspath} %s%s/${TARGET.file}'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ ++ action_list = [ SCons.Defaults.SharedCheck, ++ ShLinkAction, ++ libtool_install, ++ ] ++ CSuffixes = SCons.Tool.cc.CSuffixes ++ # Can't import SCons.Tool.c++.CSuffixes because of that 'c++' ++ CXXSuffixes = ['.cpp', '.cc', '.cxx', '.c++', '.C++', '.mm'] ++ shared_obj = SCons.Builder.Builder(action = {}, ++ emitter = {}, ++ prefix = '$SHOBJPREFIX', ++ suffix = '$SHOBJSUFFIX', ++ src_builder = ['CFile', 'CXXFile'], ++ source_scanner = SourceFileScanner, ++ single_source = 1) ++ for suffix in CXXSuffixes: ++ shared_obj.add_action(suffix, ShCXXAction) ++ shared_obj.add_emitter(suffix, SCons.Defaults.SharedObjectEmitter) ++ for suffix in CSuffixes: ++ shared_obj.add_action(suffix, ShCAction) ++ shared_obj.add_emitter(suffix, SCons.Defaults.SharedObjectEmitter) ++ ++ LibtoolBuilder = SCons.Builder.Builder(action = action_list, ++ emitter = "$SHLIBEMITTER", ++ prefix = '$SHLIBPREFIX', ++ suffix = '$SHLIBSUFFIX', ++ target_scanner = ProgramScanner, ++ src_suffix = '$SHOBJSUFFIX', ++ src_builder = shared_obj) ++ ++ from SCons.Tool.install import add_targets_to_INSTALLED_FILES ++ LibtoolInstall = SCons.Builder.Builder( ++ action = 'libtool --mode=install install -D ${SOURCE.abspath} ${TARGET.abspath}', ++ target_factory = env.fs.Entry, ++ source_factory = env.fs.Entry, ++ multi = 1, ++ emitter = [ add_targets_to_INSTALLED_FILES, ], ++ name = 'LibtoolInstall') ++ ++ env['BUILDERS']['LibtoolInstall'] = LibtoolInstall ++ ++ lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ if not os.path.exists(lib_dir): ++ os.makedirs(lib_dir) ++ libtool_install_path = '#lib' + env_etc.rpath ++ env.Append(LIBPATH=libtool_install_path) ++ env['BUILDERS']['SharedLibrary'] = LibtoolBuilder ++env_etc.set_libtool = set_libtool ++ ++def unset_libtool(env): ++ env['BUILDERS']['SharedLibrary'] = env_etc.SharedLibBuilder_save ++ env.Replace( ++ SHOBJSUFFIX=env_etc.shobjsuffix_save, ++ ) ++env_etc.unset_libtool = unset_libtool ++ ++if (libtbx.env.build_options.libtoolize): ++ env_etc.shlibsuffix = ".la" ++ env_base.Append(LIBSUFFIXES=[env_etc.shlibsuffix]) ++ rpath_link = ['-rpath', env_etc.rpath] ++ env_etc.shlinkflags.extend(rpath_link) ++ if '-shared' in env_etc.shlinkflags: ++ env_etc.shlinkflags.remove('-shared') ++ env_etc.set_libtool(env_base) + + def create_install_targets(): + cwd = os.getcwd() + rp = libtbx.env.repository_paths +- lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ lib_dir = abs(libtbx.env.lib_path) + exe_dev = libtbx.env.under_build("exe_dev") + include_path = libtbx.env.include_path +- if not os.path.exists(lib_dir): +- os.makedirs(lib_dir) + rp = list(rp) + rp.append(lib_dir) + rp.append(include_path) +@@ -1082,17 +1165,31 @@ def create_install_targets(): + os.chdir(src_dir) + dest = None + for root, dirnames, filenames in os.walk('.'): ++ # exclude .libs dir ++ if '.libs' in dirnames: ++ dirnames.remove('.libs') + for filename in filenames: +- if re.match('^lib.*\.(so.*|dylib.*|la|a)$', filename, flags=re.IGNORECASE): +- dest = os.path.join(env_etc.libpath, root) +- src = os.path.join(src_dir, root, filename) +- env_base.Install(dest, src) +- env_base.Alias("install-shlib", dest) ++ if not (libtbx.env.build_options.libtoolize): ++ if re.match('^lib.*\.(so|dylib|a)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-shlib", dest) ++ else: ++ if re.match('^lib.*\.la$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root, filename) ++ src = os.path.join(src_dir, root, filename) ++ env_base.LibtoolInstall(dest, src) ++ env_base.Alias("install-shlib", dest) + if re.match('^.*\.(h|hpp)$', filename, flags=re.IGNORECASE): + dest = os.path.join(env_etc.inclpath, root) + src = os.path.join(src_dir, root, filename) + env_base.Install(dest, src) + env_base.Alias("install-header", dest) ++ if src_dir == lib_dir: ++ break ++ ++ env_base.Alias("install-shlib", dest) + dest = env_etc.binpath + env_base.Install(dest, Glob('%s/*'%(exe_dev))) + env_base.Alias("install-bin", dest) +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 0885527..3d9133e 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -705,6 +705,7 @@ Wait for the command to finish, then try again.""" % vars()) + install_prefix=command_line.options.install_prefix, + libdir=command_line.options.libdir, + install_destdir=command_line.options.install_destdir, ++ libtoolize=command_line.options.libtoolize, + scan_boost=command_line.options.scan_boost, + write_full_flex_fwd_h=command_line.options.write_full_flex_fwd_h, + boost_python_no_py_signatures +@@ -1767,6 +1768,7 @@ class build_options: + install_prefix, + libdir, + install_destdir, ++ libtoolize, + scan_boost, + write_full_flex_fwd_h=default_write_full_flex_fwd_h, + build_boost_python_extensions=default_build_boost_python_extensions, +@@ -1830,6 +1832,7 @@ class build_options: + print >> f, "Boost threads enabled:", self.enable_boost_threads + print >> f, "Enable OpenMP if possible:", self.enable_openmp_if_possible + print >> f, "Enable CUDA:", self.enable_cuda ++ print >> f, "Libtoolize:", self.libtoolize + print >> f, "Use System Libraries:", self.use_system_libs + print >> f, "Install Prefix:", self.install_prefix + print >> f, "Libdir:", self.libdir +@@ -1974,6 +1977,10 @@ class pre_process_args: + default="/usr/local", + help="sets the prefix for the install targets. Default: /usr/local", + metavar="DIRECTORY") ++ parser.option(None, "--libtoolize", ++ action="store_true", ++ default=False, ++ help="build all shared libraries with libtool.") + parser.option(None, "--scan_boost", + action="store_true", + default=False, diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0008-Fix-to-skip-pycbf-build.patch b/sci-libs/cctbx/files/2012.05.08.2305/0008-Fix-to-skip-pycbf-build.patch new file mode 100644 index 0000000..7aa3a39 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0008-Fix-to-skip-pycbf-build.patch @@ -0,0 +1,52 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:08:30 +0200 +Subject: Fix to skip pycbf build + +--- + cctbx_sources/cbflib_adaptbx/SConscript | 8 ++++---- + cctbx_sources/cbflib_adaptbx/libtbx_refresh.py | 16 ++++++++-------- + 2 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/SConscript b/cctbx_sources/cbflib_adaptbx/SConscript +index 334cfc2..42ab9c3 100644 +--- a/cctbx_sources/cbflib_adaptbx/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/SConscript +@@ -90,10 +90,10 @@ if (not env_etc.no_boost_python): + env=env_cbflib_boost_python_ext, + paths=env_etc.cbflib_common_includes + [env_etc.python_include]) + +- env_cbflib_boost_python_ext.SharedLibrary( +- target='#lib/_pycbf', +- source=[prefix+"/pycbf/pycbf_wrap.c"], +- LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) ++ #env_cbflib_boost_python_ext.SharedLibrary( ++ # target='#lib/_pycbf', ++ # source=[prefix+"/pycbf/pycbf_wrap.c"], ++ # LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) + + Export("env_cbflib_boost_python_ext") + +diff --git a/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py b/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py +index 51b3e42..dd1b8e9 100644 +--- a/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py ++++ b/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py +@@ -1,11 +1,11 @@ + from libtbx.str_utils import show_string + import os + op = os.path +-pycbf_py = self.env.under_dist(module_name="cbflib", path="pycbf/pycbf.py") +-if (not op.isfile(pycbf_py)): +- raise RuntimeError("Missing file: %s" % show_string(pycbf_py)) +-target_dir = self.env.under_build(path="lib") +-if (not op.isdir(target_dir)): +- os.makedirs(target_dir) +-print " Copying to lib: %s" % show_string(pycbf_py) +-open(op.join(target_dir, "pycbf.py"), "w").write(open(pycbf_py).read()) ++#pycbf_py = self.env.under_dist(module_name="cbflib", path="pycbf/pycbf.py") ++#if (not op.isfile(pycbf_py)): ++# raise RuntimeError("Missing file: %s" % show_string(pycbf_py)) ++#target_dir = self.env.under_build(path="lib") ++#if (not op.isdir(target_dir)): ++# os.makedirs(target_dir) ++#print " Copying to lib: %s" % show_string(pycbf_py) ++#open(op.join(target_dir, "pycbf.py"), "w").write(open(pycbf_py).read()) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0009-build-libann-statically.patch b/sci-libs/cctbx/files/2012.05.08.2305/0009-build-libann-statically.patch new file mode 100644 index 0000000..77ba2b2 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0009-build-libann-statically.patch @@ -0,0 +1,27 @@ +From: Radostan Riedel +Date: Thu, 19 Jul 2012 11:29:57 +0200 +Subject: build libann statically + +--- + cctbx_sources/annlib_adaptbx/SConscript | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/cctbx_sources/annlib_adaptbx/SConscript b/cctbx_sources/annlib_adaptbx/SConscript +index 31b4da6..f217b3f 100644 +--- a/cctbx_sources/annlib_adaptbx/SConscript ++++ b/cctbx_sources/annlib_adaptbx/SConscript +@@ -29,9 +29,11 @@ if (libtbx.manual_date_stamp < 20090819): + env.Replace(CXXFLAGS=env_etc.cxxflags_base) + env.Replace(SHCXXFLAGS=env_etc.cxxflags_base) + +-if (env_etc.static_libraries): builder = env.StaticLibrary +-else: builder = env.SharedLibrary +-builder(target='#lib/ann', ++#if (env_etc.static_libraries): builder = env.StaticLibrary ++#else: builder = env.SharedLibrary ++# Create a static library since the changes are incompatiple ++# with debian's libann ++env.StaticLibrary(target='#lib/ann', + source = ["../annlib/src/ANN.cpp", + "../annlib/src/bd_fix_rad_search.cpp", + "../annlib/src/bd_pr_search.cpp", diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0010-adding-setup_py.patch b/sci-libs/cctbx/files/2012.05.08.2305/0010-adding-setup_py.patch new file mode 100644 index 0000000..7599d82 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0010-adding-setup_py.patch @@ -0,0 +1,662 @@ +From: Baptiste Carvello +Date: Tue, 21 Aug 2012 16:10:19 +0200 +Subject: adding-setup_py + +--- + cctbx_sources/stdlib.py | 4 + + sconsutils.py | 485 +++++++++++++++++++++++++++++++++++++++++++++++ + setup.py | 136 +++++++++++++ + 3 files changed, 625 insertions(+) + create mode 100755 cctbx_sources/stdlib.py + create mode 100644 sconsutils.py + create mode 100755 setup.py + +diff --git a/cctbx_sources/stdlib.py b/cctbx_sources/stdlib.py +new file mode 100755 +index 0000000..759f689 +--- /dev/null ++++ b/cctbx_sources/stdlib.py +@@ -0,0 +1,4 @@ ++from libtbx.forward_compatibility import stdlib_import ++ ++math = stdlib_import("math") ++random = stdlib_import("random") +diff --git a/sconsutils.py b/sconsutils.py +new file mode 100644 +index 0000000..322585b +--- /dev/null ++++ b/sconsutils.py +@@ -0,0 +1,485 @@ ++from distutils.sysconfig import get_python_lib, get_config_var ++from distutils.command.build_ext import build_ext as _build_ext ++from distutils.command.build_py import build_py as _build_py ++from distutils.command.install_lib import install_lib as _install_lib ++from distutils.command.install_data import install_data as _install_data ++from distutils.command.clean import clean as _clean ++from distutils.cmd import Command as _Command ++from distutils.dir_util import remove_tree ++from distutils.util import change_root, convert_path ++from distutils.errors import DistutilsExecError ++from distutils import log ++import sys, os ++import SCons.Script ++import libtbx ++import libtbx.env_config ++from libtbx.path import relocatable_path, absolute_path ++from libtbx.path import relpath # don't use relpath from os.path, introduced in 2.6 ++from libtbx.utils import import_python_object ++import threading ++import pickle ++ ++opj = os.path.join ++configure_list = [] ++scons_buildargv = [] ++scons_installargv = [] ++SRCDIR='' ++ ++class Command(_Command): ++ def run_scons(self, argv): ++ cwd = os.getcwd() ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') # build_temp must be set by subclass ++ if not os.path.exists(builddir): ++ if not os.path.exists(os.path.abspath(self.build_temp)): ++ os.mkdir(os.path.abspath(self.build_temp)) ++ os.mkdir(builddir) ++ elif not os.path.isdir(builddir): ++ raise RuntimeError(("Build directory '%s' cannot be created " ++ "because of existing file") % builddir) ++ os.chdir(builddir) ++ if '%PREFIX%' in configure_list: ++ idx=configure_list.index('%PREFIX%') ++ configure_list[idx] = self.prefix # prefix must be set by subclass ++ libtbx.env_config.cold_start(configure_list) ++ os.environ["LIBTBX_BUILD"] = builddir ++ os.environ['PYTHONPATH'] = ':'.join(sys.path) ++ self.spawn(argv) ++ os.chdir(cwd) ++ ++class build_ext(_build_ext, Command): ++ user_options = _build_ext.user_options + [ ++ ('prefix=', None, "installation prefix (default: python installation prefix") ++ ] ++ def initialize_options(self): ++ _build_ext.initialize_options(self) ++ self.prefix = None ++ def finalize_options(self): ++ _build_ext.finalize_options(self) ++ if not self.prefix: ++ self.prefix = get_config_var('prefix') # on Debian: 'usr' ++ def run(self): ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') # build_temp set by _build_ext ++ self.run_scons(scons_buildargv) ++ for ext in self.extensions: ++ if len(ext.sources) != 1 or ext.sources[0] != '%SCONSLIB%': ++ log.warn("Don't know how to build extension '%s' -- skipping", ++ ext.name) ++ continue ++ dst = self.get_ext_fullpath(ext.name) ++ bld = opj(builddir, 'lib', os.path.basename(dst)) ++ if os.path.isfile(bld): ++ self.copy_file(bld, dst) ++ ++class build_py(_build_py): ++ def build_module (self, module, module_file, package): ++ if type(package) is str: ++ package = package.split('.') ++ elif type(package) not in (list, tuple): ++ raise TypeError, \ ++ "'package' must be a string (dot-separated), list, or tuple" ++ ++ # Now put the module source file into the "build" area -- this is ++ # easy, we just copy it somewhere under self.build_lib (the build ++ # directory for Python source). ++ outfile = self.get_module_outfile(self.build_lib, package, module) ++ dir = os.path.dirname(outfile) ++ self.mkpath(dir) ++ # If the module contains non-blank, non-comment/docstring lines, and doesn't have ++ # the __future__ import, add it before the first non-comment/docstring line ++ empty = True ++ found = False ++ docstring = None ++ file_obj = open(module_file) ++ for line in file_obj: ++ if docstring: ++ if (line.count(docstring) % 2) == 1: ++ # FIXME this logic will fail with lines such as """ + ''', ++ # but nobody with a sane mind would do that, would they ? ++ docstring = None ++ continue ++ if line == "from __future__ import division\n": ++ found = True ++ break ++ if line.isspace() or line.startswith('#'): ++ continue ++ if line.startswith('"""') and (line.count('"""') % 2) == 1: ++ docstring = '"""' ++ continue ++ if line.startswith('"'): ++ continue ++ if line.startswith("'''") and (line.count("'''") % 2) == 1: ++ docstring = "'''" ++ continue ++ if line.startswith("'"): ++ continue ++ empty = False ++ break ++ file_obj.close() ++ if empty or found: ++ return self.copy_file(module_file, outfile, preserve_mode=0) ++ elif self.dry_run: ++ if os.path.isdir(outfile): ++ outfile = opj(outfile, os.path.basename(module_file)) ++ log.info("copying with modification %s -> %s", module_file, outfile) ++ return outfile, True ++ else: ++ if os.path.isdir(outfile): ++ outfile = opj(outfile, os.path.basename(module_file)) ++ log.info("copying with modification %s -> %s", module_file, outfile) ++ file_obj = open(module_file) ++ outfile_obj = open(outfile, 'w') ++ written = False ++ docstring = None ++ for line in file_obj: ++ if not written: ++ if docstring: ++ if (line.count(docstring) % 2) == 1: ++ docstring = None ++ outfile_obj.write(line) ++ continue ++ if line.isspace() or line.startswith('#'): ++ outfile_obj.write(line) ++ continue ++ if line.startswith('"""') and (line.count('"""') % 2) == 1: ++ docstring = '"""' ++ outfile_obj.write(line) ++ continue ++ if line.startswith('"'): ++ outfile_obj.write(line) ++ continue ++ if line.startswith("'''") and (line.count("'''") % 2) == 1: ++ docstring = "'''" ++ outfile_obj.write(line) ++ continue ++ if line.startswith("'"): ++ outfile_obj.write(line) ++ continue ++ outfile_obj.write("from __future__ import division\n") ++ written = True ++ outfile_obj.write(line) ++ outfile_obj.close() ++ file_obj.close() ++ return outfile, True ++ ++class test(_Command): ++ description = "runs the tests in the distutils build directory" ++ user_options = [ ++ ('build-lib=', None, ++ "distutils build directory (default: 'build.build-lib')"), ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')") ++ ] ++ def initialize_options(self): ++ self.build_lib = None ++ self.build_temp = None ++ def finalize_options(self): ++ self.set_undefined_options('build', ++ ('build_lib', 'build_lib'), ++ ('build_temp', 'build_temp')) ++ def run(self): ++ libdir = os.path.abspath(os.path.abspath(self.build_lib)) ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ testdir = opj(os.path.abspath(self.build_temp), 'cctbx-test') ++ self.setup_test_env(builddir, libdir, testdir) ++ os.environ["LIBTBX_BUILD"] = testdir ++ env = libtbx.env_config.unpickle() ++ os.environ['PYTHONPATH'] = ':'.join([libdir] + sys.path[5:]) ++ llp = os.environ.get('LD_LIBRARY_PATH') ++ if llp is not None: ++ os.environ['LD_LIBRARY_PATH'] = ':'.join([opj(builddir, 'lib', '.libs'), llp]) ++ else: ++ os.environ['LD_LIBRARY_PATH'] = opj(builddir, 'lib', '.libs') ++ os.chdir(testdir) ++ failed = [] ++ for m in env.module_list: ++ for (module_name,dist_path) in m.name_and_dist_path_pairs(): ++ try: ++# tst_list = import_python_object( ++# import_path="%s.run_tests.tst_list" % module_name, Does not work yet ++# error_prefix="", ++# target_must_be="", ++# where_str="").object ++ run_func = import_python_object( ++ import_path="%s.run_tests.run" % module_name, ++ error_prefix="", ++ target_must_be="", ++ where_str="").object ++ tst_mod = file(opj(abs(dist_path), "run_tests.py")) # Ugly, temporary ++ tst_lines = [l.strip() for l in tst_mod] ++ tst_mod.close() ++ tst_code = " ".join(["("] + ++ tst_lines[(tst_lines.index("tst_list = (")+1) ++ :(tst_lines.index(")")+1)] ++ ) ++ tst_list = eval(tst_code) ++ ++ except Exception: ++ continue ++ for tst in tst_list: # adapted from libtbx.test_utils.iter_tests_cmd ++ cmd_args = [] ++ if (type(tst) == type([])): ++# cmd_args = tst[1:] FIXME why only in quick mode? ++ tst = tst[0] ++ if (tst.startswith("$B")): ++ tst_path = tst.replace("$B", builddir) ++ else: ++ tst_path = tst.replace("$D", abs(dist_path)) ++ if "$" in tst_path or '"' in tst_path: ++ log.warn("Could not run test '%s':\n%s", tst, "Unexpected '$' in test path") ++ failed.append([module_name,tst,AssertionError("Unexpected '$' in test path")]) ++ continue ++ if '"' in tst_path: ++ log.warn("Could not run test '%s':\n%s", tst, "Unexpected '\"' in test path") ++ failed.append([module_name,tst,AssertionError("Unexpected '\"' in test path")]) ++ continue ++ tst_path = os.path.normpath(tst_path) ++ if (tst_path.endswith(".py")): ++ cmd = [sys.executable, tst_path] + cmd_args ++ else: ++ cmd = [tst_path] + cmd_args ++ try: ++ self.spawn(cmd) ++ except DistutilsExecError, e: ++ log.warn("Failure in test '%s':\n%s", tst, str(e)) ++ failed.append([module_name,tst,e]) ++ except Exception, e: ++ log.warn("Exception in test '%s':\n%s", tst, str(e)) ++ failed.append([module_name,tst,e]) ++ if failed: ++ log.warn("Some tests failed:") ++ for n,t,e in failed: ++ log.warn(" module %s, test %s" % (n,t)) ++ raise RuntimeError("Test failures") ++ ++ def setup_test_env(self, builddir, libdir, testdir): ++ """ Create the test directory and the temporary libtbx_env pickle object """ ++ if not os.path.exists(testdir): ++ if not os.path.exists(os.path.abspath(self.build_temp)): ++ os.mkdir(os.path.abspath(self.build_temp)) ++ os.mkdir(testdir) ++ elif not os.path.isdir(testdir): ++ raise RuntimeError(("Test directory '%s' cannot be created " ++ "because of existing file") % testdir) ++ os.environ["LIBTBX_BUILD"] = builddir ++ env = libtbx.env_config.unpickle() ++ module_dist_paths = {} ++ for key, value in env.module_dist_paths.items(): ++ head, module = os.path.split(abs(value)) ++ module_dist_paths[key] = relocatable_path(absolute_path(libdir), module) ++ env.module_dist_paths = module_dist_paths ++ for module in env.module_list: ++ paths = [] ++ for path in module.dist_paths: ++ if path != None: ++ head, tail = os.path.split(abs(path)) ++ rp = relocatable_path(absolute_path(libdir), tail) ++ paths.append(rp) ++ else: ++ paths.append(None) ++ module.dist_paths = paths ++ file_obj = open(opj(testdir,'libtbx_env'), 'wb') ++ pickle.dump(env, file_obj, 0) ++ file_obj.close() ++ ++class install_lib(_install_lib, Command): ++ user_options = _install_lib.user_options + [ ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')"), ++ ('prefix=', None, "installation prefix (default: 'install.prefix')"), ++ ('root=', None, ++ "install everything relative to this alternate root directory (default: 'install.root')") ++ ] ++ def initialize_options(self): ++ _install_lib.initialize_options(self) ++ self.build_temp = None ++ self.prefix = None ++ self.root = None ++ def finalize_options(self): ++ _install_lib.finalize_options(self) ++ self.set_undefined_options('build', ++ ('build_temp', 'build_temp')) ++ self.set_undefined_options('install', ++ ('prefix', 'prefix'), ++ ('root', 'root')) ++ def run(self): ++ _install_lib.run(self) ++ if self.root != None: ++ ip = '--install_destdir' ++ if ip not in configure_list: ++ configure_list.extend([ip, self.root]) ++ self.run_scons(scons_installargv) ++ ++class install_data(_install_data, Command): ++ user_options = _install_data.user_options + [ ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')"), ++ ('prefix=', None, "installation prefix (default: 'install.prefix')") ++ ] ++ def initialize_options(self): ++ _install_data.initialize_options(self) ++ self.build_temp = None ++ self.prefix = None ++ def finalize_options(self): ++ _install_data.finalize_options(self) ++ self.set_undefined_options('build', ++ ('build_temp', 'build_temp')) ++ self.set_undefined_options('install', ++ ('prefix', 'prefix')) ++ def run(self): ++ # filter the list ++ newdf = [] ++ libtbx_env_path = None ++ for f in self.data_files: ++ if type(f) is str: ++ newdf.append(f) ++ continue ++ if '%LIBTBXENV%' in f[1]: ++ f = (f[0], [p for p in f[1] if p != '%LIBTBXENV%']) ++ libtbx_env_path = opj(convert_path(f[0]), 'libtbx_env') ++ if not os.path.isabs(libtbx_env_path): # mimic the logic in install_data ++ libtbx_env_path = opj(self.install_dir, libtbx_env_path) ++ elif self.root: ++ libtbx_env_path = change_root(self.root, libtbx_env_path) ++ # we leave the directory in, so that distutils will create it ++ newdf.append(f) ++ self.data_files = newdf ++ _install_data.run(self) ++ if libtbx_env_path is not None: ++ self.install_libtbx_env(libtbx_env_path) ++ self.outfiles.append(libtbx_env_path) ++ ++ def install_libtbx_env(self, libtbx_env_path): ++ """ Modify libtbx_env pickle object to set the correct paths. """ ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ os.environ["LIBTBX_BUILD"] = builddir ++ env = libtbx.env_config.unpickle() ++ env.build_path = absolute_path(self.prefix) ++ build_path = env.build_path ++ python_lib = get_python_lib() ++ rel_path = opj(python_lib, 'cctbx') ++ env.bin_path = relocatable_path(build_path, 'bin') ++ env.lib_path = relocatable_path(build_path, 'lib') ++ env.include_path = relocatable_path(build_path, 'include') ++ env.repository_paths = relocatable_path(build_path, rel_path) ++ env.scons_dist_path = None ++ env.pythonpath = None ++ env.exe_path = env.bin_path ++ env.python_exe = relocatable_path(build_path, sys.executable) ++ env.path_utility = relocatable_path(build_path, ++ opj(rel_path, 'libtbx', 'command_line', 'path_utility.py')) ++ module_dist_paths = {} ++ for key, value in env.module_dist_paths.items(): ++ head, module = os.path.split(abs(value)) ++ module_dist_paths[key] = relocatable_path(build_path, ++ opj(rel_path, module)) ++ env.module_dist_paths = module_dist_paths ++ for module in env.module_list: ++ paths = [] ++ for path in module.dist_paths: ++ if path != None: ++ head, tail = os.path.split(abs(path)) ++ rp = relocatable_path(build_path, opj(rel_path, tail)) ++ paths.append(rp) ++ else: ++ paths.append(None) ++ module.dist_paths = paths ++ _dispatcher_registry={} ++ for key, value in env._dispatcher_registry.items(): ++ new_key = relocatable_path(anchor=build_path, ++ relocatable=key.relocatable) ++ rel = relpath(abs(value), SRCDIR) ++ new_val = relocatable_path(anchor=absolute_path(rel_path), ++ relocatable=rel) ++ _dispatcher_registry[new_key] = new_val ++ env._dispatcher_registry = _dispatcher_registry ++ # install the environment file in the data dir ++ file_obj = open(libtbx_env_path, 'wb') ++ pickle.dump(env, file_obj, 0) ++ file_obj.close() ++ ++class clean(_clean): ++ def run(self): ++ # remove the scons build dir ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ if os.path.exists(builddir): ++ remove_tree(builddir, dry_run=self.dry_run) ++ else: ++ log.debug("'%s' does not exist -- can't clean it", ++ builddir) ++ # remove the scons test dir ++ testdir = opj(os.path.abspath(self.build_temp), 'cctbx-test') ++ if os.path.exists(testdir): ++ remove_tree(testdir, dry_run=self.dry_run) ++ else: ++ log.debug("'%s' does not exist -- can't clean it", ++ testdir) ++ # call the base class to remove the distutils dirs ++ _clean.run(self) ++ ++# adapted from setuptools ++# authors: Phillip J. Eby, Tarek Ziade and the distutils SIG ++# licence: PSF or ZPL ++ ++from distutils.util import convert_path ++import re ++ ++EXTPAT1 = re.compile(r"^from (\S+_ext) import") ++EXTPAT2 = re.compile(r"^import (\S+_ext)$") ++EXTPAT3 = re.compile(r"boost.python.import_ext\(['\"](\S+_ext)['\"]\)$") ++EXTPAT4 = re.compile(r"import_ext\(['\"](\S+_ext)['\"]\)$") # in module boost.python! ++ ++def find_packages_and_extensions(where='.', exclude=()): ++ """Return a list all Python packages found within directory 'where' ++ and a list all extensions that need to be installed inside those packages ++ ++ 'where' should be supplied as a "cross-platform" (i.e. URL-style) path; it ++ will be converted to the appropriate local path syntax. 'exclude' is a ++ sequence of package names to exclude; '*' can be used as a wildcard in the ++ names, such that 'foo.*' will exclude all subpackages of 'foo' (but not ++ 'foo' itself). ++ """ ++ out = [] ++ outext = set() ++ stack=[(convert_path(where), '')] ++ ++ while stack: ++ ++ where,prefix = stack.pop(0) ++ for name in os.listdir(where): ++ ++ fn = opj(where,name) ++ if ('.' not in name and os.path.isdir(fn) and ++ os.path.isfile(opj(fn,'__init__.py')) ++ ): ++ ++ out.append(prefix+name); stack.append((fn,prefix+name+'.')) ++ ++ if name.endswith('.py'): ++ ++ f = open(opj(where, name)) ++ for l in f: ++ ++ m = EXTPAT1.match(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ m = EXTPAT2.match(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ m = EXTPAT3.search(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ if name == 'python.py' and prefix.endswith('boost.'): ++ m = EXTPAT4.search(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ f.close() ++ ++ for pat in list(exclude)+['ez_setup', 'distribute_setup']: ++ from fnmatch import fnmatchcase ++ out = [item for item in out if not fnmatchcase(item,pat)] ++ ++ return out, list(outext) +diff --git a/setup.py b/setup.py +new file mode 100755 +index 0000000..033dc9e +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,142 @@ ++from distutils.core import setup, Extension ++import sys, os, shutil ++ ++# General settings ++opj = os.path.join ++CURDIR = os.getcwd() ++SRCDIR = opj(CURDIR, 'cctbx_sources') ++py_vers = sys.version_info ++py_major = py_vers[0] ++py_minor = py_vers[1] ++py_str = 'python%s.%s'%(py_major, py_minor) ++clipper = opj('clipper_adaptbx','clipper') ++boost = opj('boost_adaptbx','boost') ++libtbx_pypath = opj('libtbx','pythonpath') ++scons_exe = '/usr/bin/scons' # FIXME platform dependent path ++scons_path = '/usr/lib/scons/' ++PATHLIST= [ SRCDIR, ++ opj(SRCDIR, libtbx_pypath), ++ opj(SRCDIR, clipper), ++ opj(SRCDIR, boost), ++ scons_path, ++ ] ++for p in PATHLIST: ++ if p not in sys.path: ++ # we need to insert at the front, in case cctbx is already installed ++ sys.path.insert(0,p) ++ ++import sconsutils ++from sconsutils import find_packages_and_extensions, build_ext, build_py, test, install_lib, install_data, clean ++ ++sconsutils.SRCDIR = SRCDIR ++ ++# Debian Multiarch magic ++multiarch = os.environ.get('DEB_HOST_MULTIARCH') ++libdir = os.environ.get('MULTILIBDIR') ++if multiarch == None: ++ multiarch = '' ++else: ++ libdir = 'lib/' + multiarch ++ ++if libdir == None: ++ libdir = 'lib' ++# Configure settings ++# We need this directory to get env_config.cold_start to run! ++# trailing slash is important ++init_dir = opj(SRCDIR, 'libtbx')+os.sep # the separator is needed for dirname to do the right thing ++build_opts = [ '--libtoolize', ++ '--use_system_libs', ++ '--use-environment-flags', ++ '--libdir', libdir, ++ '--install_prefix', '%PREFIX%', # prefix will be replaced at run time ++ ] ++conf_modules = [ 'annlib_adaptbx', ++ 'boost_adaptbx', ++ 'cbflib_adaptbx', ++ 'ccp4io_adaptbx', ++ 'cctbx', ++ 'chiltbx', ++ 'clipper_adaptbx', ++ 'crys3d', ++ 'fable', ++ 'fftw3tbx', ++ 'gltbx', ++ 'iotbx', ++ 'libtbx', ++ 'mmtbx', ++ 'omptbx', ++ 'rstbx', ++ 'scitbx', ++ 'smtbx', ++ 'spotfinder', ++ 'tbxx', ++ 'tntbx', ++ 'ucif', ++ 'wxtbx', ++ ] ++sconsutils.configure_list = [init_dir] ++sconsutils.configure_list.extend(build_opts) ++sconsutils.configure_list.extend(conf_modules) ++ ++# Build settings ++sconsutils.scons_buildargv = [sys.executable, scons_exe] ++ ++# Install settings ++sconsutils.scons_installargv = [sys.executable, scons_exe, 'install'] ++ ++# Setup settings ++ ++NAME = 'cctbx' ++VERSION = '2012.05.08.2305' ++DESCRIPTION = 'cctbx' ++AUTHOR = 'cctbx' ++AUTHOR_EMAIL = 'cctbx@cci.lbl.gov' ++URL = 'http://cctbx.sourceforge.net/' ++LICENSE = 'CCTBX 2.0' ++KEYWORDS = 'crystallography' ++SCRIPTS = [] ++PKG_DATA = {} ++EXTRA_PATH = 'cctbx' ++ ++MODS = ['stdlib'] ++ ++PACKDIR = { 'boost' : 'cctbx_sources/boost_adaptbx/boost', # in setup, paths must stay in unix syntax ++ 'clipper' : 'cctbx_sources/clipper_adaptbx/clipper', # also, let's keep them relative ++ 'optik' : 'cctbx_sources/libtbx/pythonpath/optik', # FIXME installs incompatible fork to global path ++ 'tntbx' : 'cctbx_sources/tntbx/tntbx', ++ '' : 'cctbx_sources', ++ } ++ ++PACKS = [] ++EXT_MODULES = [] ++for key, value in PACKDIR.items(): ++ p, e = find_packages_and_extensions(value) ++ PACKS.extend(p) ++ EXT_MODULES.extend(e) ++ if key != '': ++ PACKS.append(key) ++ ++EXT_MODULES = [ Extension(e, ['%SCONSLIB%']) for e in EXT_MODULES ] # special treatment from install_lib ++ ++setup(name=NAME, ++ version = VERSION, ++ author = AUTHOR, ++ author_email = AUTHOR_EMAIL, ++ url = URL, ++ description = DESCRIPTION, ++ license = LICENSE, ++ keywords = KEYWORDS, ++ extra_path = EXTRA_PATH, ++ scripts = SCRIPTS, ++ py_modules = MODS, ++ package_dir = PACKDIR, ++ packages = PACKS, ++ ext_modules = EXT_MODULES, ++ data_files = [('share/cctbx/%s'%(py_str), ['%LIBTBXENV%'])], # special treatment from install_data ++ cmdclass = {'build_ext': build_ext, ++ 'build_py': build_py, ++ 'test': test, ++ 'install_lib': install_lib, ++ 'install_data': install_data, ++ 'clean': clean}, ++ ) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0011-fix-missing-python-lib-during-linking.patch b/sci-libs/cctbx/files/2012.05.08.2305/0011-fix-missing-python-lib-during-linking.patch new file mode 100644 index 0000000..6724c0c --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0011-fix-missing-python-lib-during-linking.patch @@ -0,0 +1,47 @@ +From: Radostan Riedel +Date: Thu, 19 Jul 2012 23:26:30 +0200 +Subject: fix missing python lib during linking + +--- + cctbx_sources/libtbx/SConscript | 4 ++-- + cctbx_sources/scitbx/boost_python/SConscript | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 58bdd30..53e1512 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -54,9 +54,11 @@ def set_python_include_and_libs(env_etc): + env_etc.python_include = libtbx.env_config.python_include_path() + if (sys.platform == "win32"): + env_etc.libs_python = ["python" + sys.version[0] + sys.version[2]] ++ env_etc.py_lib = 'python%s%s'%(sys.version[0], sys.version[2]) + env_etc.libpath_python = [sys.prefix + r"\libs"] + else: + env_etc.libs_python = [] ++ env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) + env_etc.libpath_python = [] + if (env_etc.compiler.startswith("darwin_")): + env_etc.python_framework = "/".join( +@@ -1034,8 +1036,6 @@ def check_syslib(lib, extra_libs=None): + return True + env_etc.check_syslib = check_syslib + +-env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) +- + if (libtbx.env.build_options.use_system_libs): + env_etc.use_system_libs = True + +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index 1f396e5..b906eb3 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -7,7 +7,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(LIBPATH=env_etc.libpath_python) +-env.Append(LIBS=[env_etc.boost_python] + env_etc.libs_python) ++env.Append(LIBS=[env_etc.boost_python] + [env_etc.py_lib,] + env_etc.libs_python) + env_etc.include_registry.append( + env=env, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0012-fix-to-remove-cctbx.python-interpreter.patch b/sci-libs/cctbx/files/2012.05.08.2305/0012-fix-to-remove-cctbx.python-interpreter.patch new file mode 100644 index 0000000..ec9a216 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0012-fix-to-remove-cctbx.python-interpreter.patch @@ -0,0 +1,29 @@ +From: Radostan Riedel +Date: Mon, 23 Jul 2012 23:58:46 +0200 +Subject: fix to remove cctbx.python interpreter + +--- + cctbx_sources/rstbx/bpcx/uc1_2.py | 2 +- + cctbx_sources/rstbx/bpcx/uc1_2_reeke.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/rstbx/bpcx/uc1_2.py b/cctbx_sources/rstbx/bpcx/uc1_2.py +index 95ee9cd..1abf8e1 100644 +--- a/cctbx_sources/rstbx/bpcx/uc1_2.py ++++ b/cctbx_sources/rstbx/bpcx/uc1_2.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env cctbx.python ++#!/usr/bin/env python + # + # Biostruct-X Data Reduction Use Case 1.2: + # +diff --git a/cctbx_sources/rstbx/bpcx/uc1_2_reeke.py b/cctbx_sources/rstbx/bpcx/uc1_2_reeke.py +index c07c015..8eebd49 100644 +--- a/cctbx_sources/rstbx/bpcx/uc1_2_reeke.py ++++ b/cctbx_sources/rstbx/bpcx/uc1_2_reeke.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env cctbx.python ++#!/usr/bin/env python + # + # Biostruct-X Data Reduction Use Case 1.2: + # diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch b/sci-libs/cctbx/files/2012.05.08.2305/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch new file mode 100644 index 0000000..8243d93 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch @@ -0,0 +1,90 @@ +From: Radostan Riedel +Date: Tue, 24 Jul 2012 17:12:30 +0200 +Subject: fix to support LDFLAGS in use_enviroment_flags + +--- + cctbx_sources/libtbx/SConscript | 11 ++++++++++- + cctbx_sources/libtbx/env_config.py | 7 ++++++- + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 53e1512..7d51d4a 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -777,11 +777,15 @@ else: + # user options for any compiler from the environment variables + # at the time of configure + opts = libtbx.env.build_options ++ env_etc.ldflags_base = [] + if( opts.use_environment_flags ): + print "libtbx.scons: using flags from initial environment: " + print " CXXFLAGS = ", opts.env_cxxflags + print " CFLAGS = ", opts.env_cflags + print " CPPFLAGS = ", opts.env_cppflags ++ print " LDFLAGS = ", opts.env_ldflags ++ flg = opts.env_ldflags.split(" ") ++ env_etc.ldflags_base = flg + flg = opts.env_cxxflags.split(" ") + if( hasattr(env_etc, "cxxflags_base") ): + env_etc.cxxflags_base.extend(flg) +@@ -853,6 +857,9 @@ def env_base_sync_with_env_etc(): + SHCFLAGS=env_etc.cflags_base, + SHCCFLAGS=env_etc.ccflags_base, + SHCXXFLAGS=env_etc.cxxflags_base) ++ env_base.Prepend(LINKFLAGS=env_etc.ldflags_base) ++ env_etc.shlinkflags.extend(env_etc.ldflags_base) ++ env_etc.shlinkflags_bpl.extend(env_etc.ldflags_base) + env_base_sync_with_env_etc() + + if (static_exe): +@@ -1070,8 +1077,10 @@ def set_libtool(env): + # for reference. Otherwise it will be set to 0:0:0 + env_etc.shobjsuffix_save = env['SHOBJSUFFIX'] + env_etc.SharedLibBuilder_save = env['BUILDERS']['SharedLibrary'] ++ sh_flg = list(env_etc.ldflags_base) ++ sh_flg.extend(['-rpath', env_etc.rpath]) + env.Replace( +- SHLINKFLAGS='-rpath ' + env_etc.rpath, ++ SHLINKFLAGS=sh_flg, + SHOBJSUFFIX='.lo', + SHLIBSUFFIX='.la', + ) +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 3d9133e..d8fb063 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -1803,6 +1803,7 @@ class build_options: + self.env_cxxflags = "" + self.env_cflags = "" + self.env_cppflags = "" ++ self.env_ldflags = "" + flg = os.environ.get("CXXFLAGS") + if flg is not None: + self.env_cxxflags = flg +@@ -1812,6 +1813,9 @@ class build_options: + flg = os.environ.get("CPPFLAGS") + if flg is not None: + self.env_cppflags = flg ++ flg = os.environ.get("LDFLAGS") ++ if flg is not None: ++ self.env_ldflags = flg + + def report(self, f=None): + if (f is None): f = sys.stdout +@@ -1843,6 +1847,7 @@ class build_options: + print >>f, " CXXFLAGS = ", self.env_cxxflags + print >>f, " CFLAGS = ", self.env_cflags + print >>f, " CPPFLAGS = ", self.env_cppflags ++ print >>f, " LDFLAGS = ", self.env_ldflags + + class include_registry: + +@@ -2000,7 +2005,7 @@ class pre_process_args: + action="store_true", + default=False, + help="add compiler flags from environment variables: CXXFLAGS, CFLAGS," +- " CPPFLAGS") ++ " CPPFLAGS, LDFLAGS") + parser.option(None, "--force_32bit", + action="store_true", + default=False, diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch b/sci-libs/cctbx/files/2012.05.08.2305/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch new file mode 100644 index 0000000..c3e357e --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch @@ -0,0 +1,21 @@ +From: Radostan Riedel +Date: Wed, 25 Jul 2012 01:44:36 +0200 +Subject: Fix to append CPPFLAGS to CXXFLAGS. + +--- + cctbx_sources/libtbx/SConscript | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 7d51d4a..11a7810 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -798,6 +798,8 @@ else: + env_etc.ccflags_base = flg + flg = opts.env_cppflags.split(" ") + env_etc.ccflags_base.extend(flg) ++ # Need to append CPPFLAGS to cxxflags_base too! ++ env_etc.cxxflags_base.extend(flg) + + """ ************************ Custom Builders and Emitters ********************************* """ + diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0016-autogenerate-pkgconfig-files.patch b/sci-libs/cctbx/files/2012.05.08.2305/0016-autogenerate-pkgconfig-files.patch new file mode 100644 index 0000000..5646197 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0016-autogenerate-pkgconfig-files.patch @@ -0,0 +1,305 @@ +From: Radostan Riedel +Date: Mon, 6 Aug 2012 13:50:30 +0200 +Subject: autogenerate pkgconfig files + +--- + cctbx_sources/cctbx/SConscript | 7 ++-- + .../cctbx/sgtbx/direct_space_asu/proto/SConscript | 5 ++- + cctbx_sources/iotbx/mtz/SConscript | 6 +++- + cctbx_sources/iotbx/pdb/SConscript | 5 ++- + cctbx_sources/libtbx/SConscript | 37 +++++++++++++++++++- + cctbx_sources/mmtbx/masks/SConscript | 5 ++- + cctbx_sources/omptbx/SConscript | 5 ++- + cctbx_sources/rstbx/SConscript | 5 ++- + cctbx_sources/scitbx/boost_python/SConscript | 5 ++- + cctbx_sources/scitbx/minpack/SConscript | 5 ++- + cctbx_sources/scitbx/slatec/SConscript | 5 ++- + .../smtbx/refinement/constraints/SConscript | 5 ++- + cctbx_sources/spotfinder/SConscript | 5 ++- + 13 files changed, 86 insertions(+), 14 deletions(-) + +diff --git a/cctbx_sources/cctbx/SConscript b/cctbx_sources/cctbx/SConscript +index 6ce770c..378cb36 100644 +--- a/cctbx_sources/cctbx/SConscript ++++ b/cctbx_sources/cctbx/SConscript +@@ -96,9 +96,12 @@ lib_cctbx_sources = [ + ] + if (env_etc.static_libraries): builder = envlm.StaticLibrary + else: builder = envlm.SharedLibrary ++name='cctbx' + builder( +- target="#lib/cctbx", +- source=lib_cctbx_sources) ++ target="#lib/"+name, ++ source=lib_cctbx_sources) ++desc='Library for general crystallographic applications' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + SConscript("examples/SConscript") + +diff --git a/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript b/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript +index 5a5cfbd..4328794 100644 +--- a/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript ++++ b/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript +@@ -16,9 +16,12 @@ lib_asu_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + ++name='cctbx_sgtbx_asu' + builder( +- target="#lib/cctbx_sgtbx_asu", ++ target="#lib/"+name, + source=lib_asu_sources) ++desc='Direct space asymmetric unit class library' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env.Prepend(LIBS=["cctbx_sgtbx_asu"]) +diff --git a/cctbx_sources/iotbx/mtz/SConscript b/cctbx_sources/iotbx/mtz/SConscript +index cd539e6..f7d22b8 100644 +--- a/cctbx_sources/iotbx/mtz/SConscript ++++ b/cctbx_sources/iotbx/mtz/SConscript +@@ -9,13 +9,17 @@ env.Append(SHCXXFLAGS=env_etc.ccp4io_defines) + env_etc.enable_more_warnings(env=env) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='iotbx_mtz' + builder( +- target="#lib/iotbx_mtz", ++ target="#lib/"+name, + source=[ + "object.cpp", + "crystal.cpp", + "dataset.cpp", + "column.cpp"]) ++desc='Wrapper Library to work with CCP4 MTZ files' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) ++ + + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") +diff --git a/cctbx_sources/iotbx/pdb/SConscript b/cctbx_sources/iotbx/pdb/SConscript +index 9b89fe1..8a83058 100644 +--- a/cctbx_sources/iotbx/pdb/SConscript ++++ b/cctbx_sources/iotbx/pdb/SConscript +@@ -9,8 +9,9 @@ env_etc.include_registry.append( + paths=env_etc.iotbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='iotbx_pdb' + builder( +- target="#lib/iotbx_pdb", ++ target="#lib/"+name, + source=[ + "hybrid_36_c.c", + "hybrid_36_cpp.cpp", +@@ -25,6 +26,8 @@ builder( + "atom_selection.cpp", + "input.cpp", + "input_write.cpp"]) ++desc='Fast comprehensive PDB handling library' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env_etc.include_registry.append(env=env, paths=[env_etc.fable_include]) +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 11a7810..1e91202 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -1070,8 +1070,34 @@ env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) + env_etc.binpath = os.path.join(env_etc.install_path, 'bin') + env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) + env_etc.inclpath = os.path.join(env_etc.install_path, 'include') ++env_etc.pkgpath = os.path.join(env_etc.install_path, 'lib/pkgconfig') + env_etc.rpath = os.path.abspath(env_etc.prefix + '/' + env_etc.libdir) + ++def create_pc_file(name, version, desc, requires=None, requires_private=None, ++ conflicts=None, libs_private=None): ++ """ Create pkg-config file. """ ++ fpath = '%s/%s.pc'%(abs(libtbx.env.lib_path), name) ++ pc = open(fpath, 'w') ++ pc.write('prefix=%s\n'%env_etc.prefix) ++ pc.write('exec_prefix=${PREFIX}\n') ++ pc.write('libdir=${PREFIX}/%s\n'%env_etc.libdir) ++ pc.write('includedir=${PREFIX}/include\n\n') ++ pc.write('Name: %s\n'%name) ++ pc.write('Description: %s\n'%desc) ++ pc.write('Version: %s\n'%version) ++ if requires != None: ++ pc.write('Requires: %s\n'%requires) ++ if requires_private != None: ++ pc.write('Requires.private: %s\n'%requires_private) ++ if conflicts != None: ++ pc.write('Conflicts: %s\n'%conflicts) ++ pc.write('Libs: -L${libdir} -l%s\n'%name) ++ if libs_private != None: ++ pc.write('Libs.private: %s\n'%libs_private) ++ pc.write('Cflags: -I${includedir}') ++ pc.close() ++env_etc.create_pc_file = create_pc_file ++ + def set_libtool(env): + # Versioning can be provided by appending "-version-info 3:12:1" to SHLINKFLAGS + # Please see: +@@ -1197,6 +1223,11 @@ def create_install_targets(): + src = os.path.join(src_dir, root, filename) + env_base.Install(dest, src) + env_base.Alias("install-header", dest) ++ if re.match('^.*\.pc$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.pkgpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-pkgconfig", dest) + if src_dir == lib_dir: + break + +@@ -1204,7 +1235,11 @@ def create_install_targets(): + dest = env_etc.binpath + env_base.Install(dest, Glob('%s/*'%(exe_dev))) + env_base.Alias("install-bin", dest) +- Alias('install', ['install-header', 'install-shlib', 'install-bin']) ++ Alias('install', ['install-header', ++ 'install-shlib', ++ 'install-bin', ++ 'install-pkgconfig', ++ ]) + os.chdir(cwd) + + if 'install' in COMMAND_LINE_TARGETS: +diff --git a/cctbx_sources/mmtbx/masks/SConscript b/cctbx_sources/mmtbx/masks/SConscript +index ef93088..a6187cc 100644 +--- a/cctbx_sources/mmtbx/masks/SConscript ++++ b/cctbx_sources/mmtbx/masks/SConscript +@@ -13,9 +13,12 @@ lib_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + ++name='mmtbx_masks' + builder( +- target="#lib/mmtbx_masks", ++ target="#lib/"+name, + source=lib_sources) ++desc='Masks for bulk solvent modelling' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env.Prepend(LIBS=["mmtbx_masks", "iotbx_pdb"]) +diff --git a/cctbx_sources/omptbx/SConscript b/cctbx_sources/omptbx/SConscript +index 43aac91..76bb923 100644 +--- a/cctbx_sources/omptbx/SConscript ++++ b/cctbx_sources/omptbx/SConscript +@@ -12,9 +12,12 @@ env_etc.include_registry.append( + paths=[env_etc.omptbx_include]) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='omptbx' + builder( +- target="#lib/omptbx", ++ target="#lib/"+name, + source=["stubs.cpp"]) ++desc='OpenMP interface for CCTBX' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_boost_python_ext") +diff --git a/cctbx_sources/rstbx/SConscript b/cctbx_sources/rstbx/SConscript +index e2958a1..6d66476 100644 +--- a/cctbx_sources/rstbx/SConscript ++++ b/cctbx_sources/rstbx/SConscript +@@ -26,14 +26,17 @@ env_etc.include_registry.append( + paths=env_etc.rstbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='rstbx' + builder( +- target="#lib/rstbx", ++ target="#lib/"+name, + source=["dps_core/dps_core.cpp", + "dps_core/directional_fft.cpp", + "dps_core/direction.cpp", + "diffraction/ewald_sphere.cpp", + "diffraction/partial_spot_position_partial_H.cpp" + ]) ++desc='Library for calculations in reciprocal space' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_boost_python_ext") +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index b906eb3..0b81d9a 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -19,6 +19,9 @@ lib_scitbx_boost_python_sources = [ + ] + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name=env_etc.scitbx_boost_python + builder( +- target="#lib/%s"%env_etc.scitbx_boost_python, ++ target="#lib/"+name, + source=lib_scitbx_boost_python_sources) ++desc='#TODO' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) +diff --git a/cctbx_sources/scitbx/minpack/SConscript b/cctbx_sources/scitbx/minpack/SConscript +index 7c325cb..ee7509e 100644 +--- a/cctbx_sources/scitbx/minpack/SConscript ++++ b/cctbx_sources/scitbx/minpack/SConscript +@@ -9,7 +9,10 @@ env_etc.include_registry.append( + env.Append(LIBS=env_etc.libm) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target='#lib/scitbx_minpack', source=["raw.cpp"]) ++name='scitbx_minpack' ++builder(target='#lib/'+name, source=["raw.cpp"]) ++desc='C++ port of files in MINPACK' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_scitbx_boost_python_ext") +diff --git a/cctbx_sources/scitbx/slatec/SConscript b/cctbx_sources/scitbx/slatec/SConscript +index ca9b6da..39e38e1 100644 +--- a/cctbx_sources/scitbx/slatec/SConscript ++++ b/cctbx_sources/scitbx/slatec/SConscript +@@ -6,4 +6,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(LIBS=env_etc.libm) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target='#lib/scitbx_slatec', source=["lib_c.c"]) ++name='scitbx_slatec' ++builder(target='#lib/'+name, source=["lib_c.c"]) ++desc='C port of files in SLATEC' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) +diff --git a/cctbx_sources/smtbx/refinement/constraints/SConscript b/cctbx_sources/smtbx/refinement/constraints/SConscript +index 67d99dc..306d1a4 100644 +--- a/cctbx_sources/smtbx/refinement/constraints/SConscript ++++ b/cctbx_sources/smtbx/refinement/constraints/SConscript +@@ -4,7 +4,10 @@ env_etc.include_registry.append(env=env, + paths=["."] + env_etc.smtbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target="#lib/smtbx_refinement_constraints", source=Glob("*.cpp")) ++name='smtbx_refinement_constraints' ++builder(target="#lib/"+name, source=Glob("*.cpp")) ++desc='Library for small molecule crystallography constraints' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env_program = env.Clone() + env_program.Prepend(LIBS=[ "cctbx", "smtbx_refinement_constraints" ]) +diff --git a/cctbx_sources/spotfinder/SConscript b/cctbx_sources/spotfinder/SConscript +index 1d73677..a63c6d9 100644 +--- a/cctbx_sources/spotfinder/SConscript ++++ b/cctbx_sources/spotfinder/SConscript +@@ -46,9 +46,12 @@ lib_spotfinder_sources = [ + + if (env_etc.static_libraries): builder = envlm.StaticLibrary + else: builder = envlm.SharedLibrary ++name='spotfinder' + builder( +- target="#lib/spotfinder", ++ target="#lib/"+name, + source=lib_spotfinder_sources) ++desc='Library for locating Bragg-Spots on x-ray diffraction images' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0017-Fix-to-use-systems-include-path.patch b/sci-libs/cctbx/files/2012.05.08.2305/0017-Fix-to-use-systems-include-path.patch new file mode 100644 index 0000000..4affc54 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0017-Fix-to-use-systems-include-path.patch @@ -0,0 +1,128 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:15:43 +0200 +Subject: Fix to use systems include path + +--- + .../cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h | 4 ++-- + .../cbflib_adaptbx/detectors/boost_python/general_cbf_write.h | 4 ++-- + cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h | 4 ++-- + .../cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp | 6 +++--- + cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp | 4 ++-- + cctbx_sources/ccp4io_adaptbx/ext.cpp | 2 +- + cctbx_sources/iotbx/mtz/ext.cpp | 2 +- + cctbx_sources/iotbx/mtz/object.h | 6 +++--- + 8 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h +index 66677bd..516b319 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h +@@ -3,8 +3,8 @@ + #include + #include + #include +-#include +-#include ++#include ++#include + + namespace iotbx { + namespace detectors { +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h +index c6c1afb..f45b4d1 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h +@@ -1,8 +1,8 @@ + #ifndef GENERAL_CBF_WRITE_H + #define GENERAL_CBF_WRITE_H + #include +-#include "cbf_binary.h" +-#include "cbf_compress.h" ++#include "cbf/cbf_binary.h" ++#include "cbf/cbf_compress.h" + + namespace iotbx { + namespace detectors { +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h b/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h +index b5cc407..3787c7b 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h +@@ -8,8 +8,8 @@ + #include + #include + #include +-#include +-#include ++#include ++#include + #include + + #undef cbf_failnez +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp +index 2edbfb5..526556f 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp +@@ -244,9 +244,9 @@ extern "C" { + #include + #include + +-#include "cbf.h" +-#include "cbf_file.h" +-#include "cbf_byte_offset.h" ++#include "cbf/cbf.h" ++#include "cbf/cbf_file.h" ++#include "cbf/cbf_byte_offset.h" + #include + + /* Changes made in the byte-offset algorithm +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp b/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp +index 5f5d9b1..d121530 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp ++++ b/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp +@@ -1,5 +1,5 @@ +-#include +-#include ++#include ++#include + #include + #include + #include +diff --git a/cctbx_sources/ccp4io_adaptbx/ext.cpp b/cctbx_sources/ccp4io_adaptbx/ext.cpp +index ce21568..e507515 100644 +--- a/cctbx_sources/ccp4io_adaptbx/ext.cpp ++++ b/cctbx_sources/ccp4io_adaptbx/ext.cpp +@@ -1,5 +1,5 @@ + #include +-#include ++#include + #include + + namespace ccp4io_adaptbx { namespace boost_python { +diff --git a/cctbx_sources/iotbx/mtz/ext.cpp b/cctbx_sources/iotbx/mtz/ext.cpp +index b1a0db7..6aa416a 100644 +--- a/cctbx_sources/iotbx/mtz/ext.cpp ++++ b/cctbx_sources/iotbx/mtz/ext.cpp +@@ -1,5 +1,5 @@ + #include +-#include ++#include + + namespace iotbx { namespace mtz { namespace boost_python { + +diff --git a/cctbx_sources/iotbx/mtz/object.h b/cctbx_sources/iotbx/mtz/object.h +index da35fcf..b593534 100644 +--- a/cctbx_sources/iotbx/mtz/object.h ++++ b/cctbx_sources/iotbx/mtz/object.h +@@ -6,9 +6,9 @@ + # include + #endif + +-#include +-#include +-#include ++#include ++#include ++#include + #include + #include + #include diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0018-Fix-to-skip-build-of-clipper-examples.patch b/sci-libs/cctbx/files/2012.05.08.2305/0018-Fix-to-skip-build-of-clipper-examples.patch new file mode 100644 index 0000000..ffd4ebb --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0018-Fix-to-skip-build-of-clipper-examples.patch @@ -0,0 +1,52 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:19:02 +0200 +Subject: Fix to skip build of clipper examples + +--- + cctbx_sources/clipper_adaptbx/SConscript | 33 +++++++++++++++--------------- + 1 file changed, 17 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/clipper_adaptbx/SConscript b/cctbx_sources/clipper_adaptbx/SConscript +index c39047f..b0699ad 100644 +--- a/cctbx_sources/clipper_adaptbx/SConscript ++++ b/cctbx_sources/clipper_adaptbx/SConscript +@@ -61,22 +61,23 @@ else: + env_exe = env.Clone() + env_exe.Prepend(LIBS=[env_etc.clipper_libs[0]]) + +-exe = env_exe.Program( +- target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' +- +env["PROGSUFFIX"], +- source = ["../clipper/examples/symtest.cpp", +- ]) +-libtbx.env.write_dispatcher_in_bin( +- source_file=exe[0].get_abspath(), +- target_file="clipper.symtest") +-exe = env_exe.Program( +- target='#exe_dev/'+env["PROGPREFIX"]+'clipper.sanity_check' +- +env["PROGSUFFIX"], +- source = ["sanity_check.cpp", +- ]) +-libtbx.env.write_dispatcher_in_bin( +- source_file=exe[0].get_abspath(), +- target_file="clipper.sanity_check") ++# Skip building clipper examples in Debian ++#exe = env_exe.Program( ++# target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' ++# +env["PROGSUFFIX"], ++# source = ["../clipper/examples/symtest.cpp", ++# ]) ++#libtbx.env.write_dispatcher_in_bin( ++# source_file=exe[0].get_abspath(), ++# target_file="clipper.symtest") ++#exe = env_exe.Program( ++# target='#exe_dev/'+env["PROGPREFIX"]+'clipper.sanity_check' ++# +env["PROGSUFFIX"], ++# source = ["sanity_check.cpp", ++# ]) ++#libtbx.env.write_dispatcher_in_bin( ++# source_file=exe[0].get_abspath(), ++# target_file="clipper.sanity_check") + + if (hasattr(env_etc, "cctbx_include")): + if (not env_etc.no_boost_python): diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0101-system-cbf.patch b/sci-libs/cctbx/files/2012.05.08.2305/0101-system-cbf.patch new file mode 100644 index 0000000..1688026 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0101-system-cbf.patch @@ -0,0 +1,16 @@ + cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h +index 0089325..02234d1 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h +@@ -5,7 +5,7 @@ + extern "C" { + #endif + #include +-#include ++#include + + /* Decompress an array with the byte-offset algorithm */ + diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0101-system-clipper.patch b/sci-libs/cctbx/files/2012.05.08.2305/0101-system-clipper.patch new file mode 100644 index 0000000..6f50e5f --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0101-system-clipper.patch @@ -0,0 +1,185 @@ + cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h | 2 +- + cctbx_sources/clipper/clipper/contrib/Makefile.dep | 14 +++++++------- + cctbx_sources/clipper/clipper/contrib/edcalc.cpp | 2 +- + cctbx_sources/clipper/clipper/contrib/fffear.cpp | 2 +- + .../clipper/clipper/contrib/function_object_bases.h | 6 +++--- + cctbx_sources/clipper/clipper/contrib/sfcalc.cpp | 2 +- + cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp | 4 ++-- + cctbx_sources/clipper/clipper/contrib/sfweight.cpp | 4 ++-- + cctbx_sources/clipper/clipper/contrib/skeleton.cpp | 2 +- + cctbx_sources/clipper_adaptbx/clipper/SConscript | 1 - + 10 files changed, 19 insertions(+), 20 deletions(-) + +diff --git a/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h b/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h +index bd9f7d2..079958d 100644 +--- a/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h ++++ b/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h +@@ -47,7 +47,7 @@ + #define CLIPPER_CCTBX + + +-#include "../core/hkl_datatypes.h" ++#include "clipper/core/hkl_datatypes.h" + + #include + #include +diff --git a/cctbx_sources/clipper/clipper/contrib/Makefile.dep b/cctbx_sources/clipper/clipper/contrib/Makefile.dep +index 98251b1..0fe7bb3 100644 +--- a/cctbx_sources/clipper/clipper/contrib/Makefile.dep ++++ b/cctbx_sources/clipper/clipper/contrib/Makefile.dep +@@ -1,27 +1,27 @@ + +-function_object_bases.h: ../core/hkl_datatypes.h ../core/xmap.h ../core/nxmap_operator.h ++function_object_bases.h: clipper/core/hkl_datatypes.h clipper/core/xmap.h clipper/core/nxmap_operator.h + + function_object_bases.o: function_object_bases.cpp function_object_bases.h + + sfcalc.h: function_object_bases.h + +-sfcalc.o: sfcalc.cpp sfcalc.h ../core/atomsf.h ++sfcalc.o: sfcalc.cpp sfcalc.h clipper/core/atomsf.h + + edcalc.h: function_object_bases.h + +-edcalc.o: edcalc.cpp edcalc.h ../core/atomsf.h ++edcalc.o: edcalc.cpp edcalc.h clipper/core/atomsf.h + + sfcalc_obs.h: function_object_bases.h + +-sfcalc_obs.o: sfcalc_obs.cpp sfcalc_obs.h edcalc.h ../core/hkl_compute.h ../core/resol_targetfn.h ++sfcalc_obs.o: sfcalc_obs.cpp sfcalc_obs.h edcalc.h clipper/core/hkl_compute.h clipper/core/resol_targetfn.h + + sfweight.h: function_object_bases.h + +-sfweight.o: sfweight.cpp sfweight.h ../core/hkl_operators.h ../core/resol_targetfn.h ++sfweight.o: sfweight.cpp sfweight.h clipper/core/hkl_operators.h clipper/core/resol_targetfn.h + + fffear.h: function_object_bases.h + +-fffear.o: fffear.cpp fffear.h ../core/map_interp.h ++fffear.o: fffear.cpp fffear.h clipper/core/map_interp.h + + mapfilter.h: function_object_bases.h + +@@ -29,7 +29,7 @@ mapfilter.o: mapfilter.cpp mapfilter.h + + skeleton.h: function_object_bases.h + +-skeleton.o: skeleton.cpp skeleton.h ../core/map_utils.h ++skeleton.o: skeleton.cpp skeleton.h clipper/core/map_utils.h + + originmatch.h: function_object_bases.h + +diff --git a/cctbx_sources/clipper/clipper/contrib/edcalc.cpp b/cctbx_sources/clipper/clipper/contrib/edcalc.cpp +index f5df7b2..cc031bc 100644 +--- a/cctbx_sources/clipper/clipper/contrib/edcalc.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/edcalc.cpp +@@ -43,7 +43,7 @@ + + #include "edcalc.h" + +-#include "../core/atomsf.h" ++#include "clipper/core/atomsf.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/fffear.cpp b/cctbx_sources/clipper/clipper/contrib/fffear.cpp +index 9a728f7..189855a 100644 +--- a/cctbx_sources/clipper/clipper/contrib/fffear.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/fffear.cpp +@@ -42,7 +42,7 @@ + + #include "fffear.h" + +-#include "../core/map_interp.h" ++#include "clipper/core/map_interp.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/function_object_bases.h b/cctbx_sources/clipper/clipper/contrib/function_object_bases.h +index e6c98c7..4a40c73 100644 +--- a/cctbx_sources/clipper/clipper/contrib/function_object_bases.h ++++ b/cctbx_sources/clipper/clipper/contrib/function_object_bases.h +@@ -48,9 +48,9 @@ + #define CLIPPER_FUNCTION_OBJECT_BASES + + +-#include "../core/hkl_datatypes.h" +-#include "../core/xmap.h" +-#include "../core/nxmap_operator.h" ++#include "clipper/core/hkl_datatypes.h" ++#include "clipper/core/xmap.h" ++#include "clipper/core/nxmap_operator.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp b/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp +index 48c0d9c..a3c63f0 100644 +--- a/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp +@@ -43,7 +43,7 @@ + + #include "sfcalc.h" + +-#include "../core/atomsf.h" ++#include "clipper/core/atomsf.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp b/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp +old mode 100755 +new mode 100644 +index de47e09..0f67585 +--- a/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp +@@ -43,8 +43,8 @@ + + #include "sfcalc_obs.h" + #include "edcalc.h" +-#include "../core/hkl_compute.h" +-#include "../core/resol_targetfn.h" ++#include "clipper/core/hkl_compute.h" ++#include "clipper/core/resol_targetfn.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfweight.cpp b/cctbx_sources/clipper/clipper/contrib/sfweight.cpp +old mode 100755 +new mode 100644 +index 1b2d4dc..6ec98c2 +--- a/cctbx_sources/clipper/clipper/contrib/sfweight.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfweight.cpp +@@ -42,8 +42,8 @@ + + + #include "sfweight.h" +-#include "../core/hkl_operators.h" +-#include "../core/resol_targetfn.h" ++#include "clipper/core/hkl_operators.h" ++#include "clipper/core/resol_targetfn.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/skeleton.cpp b/cctbx_sources/clipper/clipper/contrib/skeleton.cpp +index bff1049..14ebf55 100644 +--- a/cctbx_sources/clipper/clipper/contrib/skeleton.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/skeleton.cpp +@@ -42,7 +42,7 @@ + + #include "skeleton.h" + +-#include "../core/map_utils.h" ++#include "clipper/core/map_utils.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper_adaptbx/clipper/SConscript b/cctbx_sources/clipper_adaptbx/clipper/SConscript +index 1911eb1..df03808 100644 +--- a/cctbx_sources/clipper_adaptbx/clipper/SConscript ++++ b/cctbx_sources/clipper_adaptbx/clipper/SConscript +@@ -11,5 +11,4 @@ env.SharedLibrary( + "clipper_ext.cpp", + "hendrickson_lattman_bpl.cpp", + "sigmaa_bpl.cpp", +- "../../clipper/clipper/contrib/sfweight.cpp", + "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]+clipper_contrib_files) diff --git a/sci-libs/cctbx/files/2012.05.08.2305/0102-dontstrip.patch b/sci-libs/cctbx/files/2012.05.08.2305/0102-dontstrip.patch new file mode 100644 index 0000000..08118f4 --- /dev/null +++ b/sci-libs/cctbx/files/2012.05.08.2305/0102-dontstrip.patch @@ -0,0 +1,25 @@ + cctbx_sources/libtbx/SConscript | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index debf569..46ab8d8 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -471,7 +471,7 @@ libtbx.scons: Warning: compiling with /MDd: + elif libtbx.env.build_options.debug_symbols: + lkfl = ["-rdynamic"] + else: +- lkfl = ["-s"] ++ lkfl = [] + env_etc.shlinkflags = ["-shared"] + if (libtbx.env.build_options.mode == "profile"): + env_base.Prepend(LINKFLAGS=["-pg"]) +@@ -589,7 +589,7 @@ else: + lkfl = ["-rdynamic"] + + else: +- lkfl = ["-s"] ++ lkfl = [] + env_etc.shlinkflags = ["-shared"] + if (libtbx.env.build_options.mode == "profile"): + env_base.Prepend(LINKFLAGS=["-pg"]) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0001-remove-hardcoded-libtbx_build-env.patch b/sci-libs/cctbx/files/2013.02.27.0005/0001-remove-hardcoded-libtbx_build-env.patch new file mode 100644 index 0000000..14d3f09 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0001-remove-hardcoded-libtbx_build-env.patch @@ -0,0 +1,24 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 15:50:22 +0200 +Subject: remove-hardcoded-libtbx_build-env + +--- + cctbx_sources/libtbx/env_config.py | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 9c01e0f..8a62446 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -2147,7 +2147,10 @@ def cold_start(args): + env.refresh() + + def unpickle(): +- build_path = os.environ["LIBTBX_BUILD"] ++ if os.environ.has_key("LIBTBX_BUILD"): ++ build_path = os.environ["LIBTBX_BUILD"] ++ else: ++ build_path = "/usr/share/cctbx/python%d.%d"%(sys.version_info[:2]) + set_preferred_sys_prefix_and_sys_executable(build_path=build_path) + libtbx_env = open(op.join(build_path, "libtbx_env"), "rb") + env = pickle.load(libtbx_env) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0002-fix-opengl-header-missing-gltbx.patch b/sci-libs/cctbx/files/2013.02.27.0005/0002-fix-opengl-header-missing-gltbx.patch new file mode 100644 index 0000000..d3684a5 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0002-fix-opengl-header-missing-gltbx.patch @@ -0,0 +1,51 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 15:51:06 +0200 +Subject: fix-opengl-header-missing-gltbx + +--- + cctbx_sources/gltbx/SConscript | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/gltbx/SConscript b/cctbx_sources/gltbx/SConscript +index d02e7a5..4b2213d 100644 +--- a/cctbx_sources/gltbx/SConscript ++++ b/cctbx_sources/gltbx/SConscript +@@ -45,22 +45,22 @@ if (not env_etc.no_boost_python): + env=env, + paths=env_etc.gltbx_common_includes + [env_etc.python_include]) + # +- env_etc.gltbx_has_usable_opengl = False +- conf = trial_env.Configure() +- flag, output = conf.TryRun(""" +-#include +-#include +-int main() { std::cout << GL_POINT << std::endl; return 0; } +-""", extension=".cpp") +- conf.Finish() +- if (flag and len(output.strip()) != 0): +- conf = env.Configure() +- if (conf.TryCompile(""" +-#include +-""", extension=".cpp")): +- env_etc.gltbx_has_usable_opengl = True +- conf.Finish() +- # ++ env_etc.gltbx_has_usable_opengl = True ++# conf = trial_env.Configure() ++# flag, output = conf.TryRun(""" ++##include ++##include ++#int main() { std::cout << GL_POINT << std::endl; return 0; } ++#""", extension=".cpp") ++# conf.Finish() ++# if (flag and len(output.strip()) != 0): ++# conf = env.Configure() ++# if (conf.TryCompile(""" ++##include ++#""", extension=".cpp")): ++# env_etc.gltbx_has_usable_opengl = True ++# conf.Finish() ++# # + if (not env_etc.gltbx_has_usable_opengl): + print "gltbx: OpenGL headers and/or libraries not available." + print "gltbx: Compilation skipped." diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0003-correct-paths-in-dispatcher-creation.patch b/sci-libs/cctbx/files/2013.02.27.0005/0003-correct-paths-in-dispatcher-creation.patch new file mode 100644 index 0000000..8d3a3c2 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0003-correct-paths-in-dispatcher-creation.patch @@ -0,0 +1,86 @@ +From: =?UTF-8?q?Picca=20Fr=C3=A9d=C3=A9ric-Emmanuel?= +Date: Sat, 30 Jun 2012 16:01:20 +0200 +Subject: correct-paths-in-dispatcher-creation + +--- + cctbx_sources/libtbx/env_config.py | 48 +++++++++++++++++++------------------- + 1 file changed, 24 insertions(+), 24 deletions(-) + +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 8a62446..c3e1c7d 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -932,27 +932,27 @@ Wait for the command to finish, then try again.""" % vars()) + print >> f, '# command at the end.' + print >> f, '#' + write_do_not_edit(f=f) +- print >> f, '# To customize this auto-generated script create' ++ #print >> f, '# To customize this auto-generated script create' + print >> f, '#' +- print >> f, '# dispatcher_include*.sh' ++ #print >> f, '# dispatcher_include*.sh' + print >> f, '#' +- print >> f, '# files in %s and run' % show_string(abs(self.build_path)) ++ #print >> f, '# files in %s and run' % show_string(abs(self.build_path)) + print >> f, '#' +- print >> f, '# libtbx.refresh' ++ #print >> f, '# libtbx.refresh' + print >> f, '#' + print >> f, '# to re-generate the dispatchers (libtbx.refresh is a subset' + print >> f, '# of the functionality of the libtbx/configure.py command).' + print >> f, '#' +- print >> f, '# See also:' +- print >> f, '# %s' \ +- % show_string(self.under_build("dispatcher_include_template.sh")) ++ #print >> f, '# See also:' ++ #print >> f, '# %s' \ ++ # % show_string(self.under_build("dispatcher_include_template.sh")) + print >> f, '#' + print >> f, _SHELLREALPATH_CODE + print >> f, 'unset PYTHONHOME' + print >> f, 'LC_ALL=C' + print >> f, 'export LC_ALL' +- print >> f, 'LIBTBX_BUILD="$(shellrealpath "$0" && cd "$(dirname "$RESULT")/.." && pwd)"' +- print >> f, 'export LIBTBX_BUILD' ++ #print >> f, 'LIBTBX_BUILD="$(shellrealpath "$0" && cd "$(dirname "$RESULT")/.." && pwd)"' ++ #print >> f, 'export LIBTBX_BUILD' + print >> f, 'LIBTBX_PYEXE_BASENAME="%s"' % self.python_exe.basename() + print >> f, 'export LIBTBX_PYEXE_BASENAME' + source_is_py = False +@@ -969,21 +969,21 @@ Wait for the command to finish, then try again.""" % vars()) + source_is_py = True + for line in self.dispatcher_include(where="at_start"): + print >> f, line +- essentials = [("PYTHONPATH", self.pythonpath)] +- essentials.append(( +- ld_library_path_var_name(), +- self.ld_library_path_additions())) +- essentials.append(("PATH", [self.bin_path])) +- for n,v in essentials: +- if (len(v) == 0): continue +- v = ":".join([p.sh_value() for p in v]) +- print >> f, 'if [ -n "$%s" ]; then' % n +- print >> f, ' %s="%s:$%s"' % (n, v, n) +- print >> f, ' export %s' % n +- print >> f, 'else' +- print >> f, ' %s="%s"' % (n, v) +- print >> f, ' export %s' % n +- print >> f, 'fi' ++ # essentials = [("PYTHONPATH", self.pythonpath)] ++ # essentials.append(( ++ # ld_library_path_var_name(), ++ # self.ld_library_path_additions())) ++ # essentials.append(("PATH", [self.bin_path])) ++ # for n,v in essentials: ++ # if (len(v) == 0): continue ++ # v = ":".join([p.sh_value() for p in v]) ++ # print >> f, 'if [ -n "$%s" ]; then' % n ++ # print >> f, ' %s="%s:$%s"' % (n, v, n) ++ # print >> f, ' export %s' % n ++ # print >> f, 'else' ++ # print >> f, ' %s="%s"' % (n, v) ++ # print >> f, ' export %s' % n ++ # print >> f, 'fi' + precall_commands = self.dispatcher_precall_commands() + if (precall_commands is not None): + for line in precall_commands: diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0006-options-for-system-libs-installtarget-and-prefix.patch b/sci-libs/cctbx/files/2013.02.27.0005/0006-options-for-system-libs-installtarget-and-prefix.patch new file mode 100644 index 0000000..861d6bc --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0006-options-for-system-libs-installtarget-and-prefix.patch @@ -0,0 +1,1099 @@ + cctbx_sources/boost_adaptbx/SConscript | 19 +- + cctbx_sources/cbflib_adaptbx/SConscript | 89 +++--- + .../detectors/boost_python/SConscript | 4 +- + cctbx_sources/ccp4io_adaptbx/SConscript | 303 +++++++++++---------- + cctbx_sources/cctbx/SConscript | 2 +- + cctbx_sources/clipper_adaptbx/SConscript | 94 ++++--- + cctbx_sources/clipper_adaptbx/clipper/SConscript | 10 +- + cctbx_sources/gltbx/SConscript | 20 +- + cctbx_sources/iotbx/cif/boost_python/SConscript | 13 +- + cctbx_sources/iotbx/mtz/SConscript | 3 +- + cctbx_sources/iotbx/pdb/SConscript | 2 +- + cctbx_sources/libtbx/SConscript | 84 ++++++ + cctbx_sources/libtbx/env_config.py | 34 +++ + cctbx_sources/mmtbx/cablam/SConscript | 2 +- + cctbx_sources/mmtbx/den/SConscript | 2 +- + cctbx_sources/mmtbx/geometry_restraints/SConscript | 2 +- + cctbx_sources/mmtbx/secondary_structure/SConscript | 2 +- + cctbx_sources/rstbx/SConscript | 2 +- + cctbx_sources/scitbx/SConscript | 2 +- + cctbx_sources/scitbx/boost_python/SConscript | 4 +- + .../smtbx/refinement/boost_python/SConscript | 4 +- + .../refinement/constraints/boost_python/SConscript | 4 +- + cctbx_sources/spotfinder/SConscript | 2 +- + cctbx_sources/xfel/SConscript | 2 +- + 24 files changed, 443 insertions(+), 262 deletions(-) + +diff --git a/cctbx_sources/boost_adaptbx/SConscript b/cctbx_sources/boost_adaptbx/SConscript +index e4d5994..7f96c04 100644 +--- a/cctbx_sources/boost_adaptbx/SConscript ++++ b/cctbx_sources/boost_adaptbx/SConscript +@@ -9,7 +9,13 @@ import sys, os + op = os.path + Import("env_base", "env_etc") + env_etc.boost_dist = libtbx.env.dist_path("boost") +-env_etc.boost_include = env_etc.boost_dist ++if not env_etc.check_syslib(env_etc.boost_python, extra_libs=env_etc.py_lib)\ ++ or not env_etc.check_syslib('boost_thread'): ++ env_etc.boost_include = env_etc.boost_dist ++else: ++ # This way the compiler looks in the standard location for includes ++ # should work on all platforms. ++ env_etc.boost_include = '' + env_etc.boost_adaptbx_dist = libtbx.env.dist_path("boost_adaptbx") + env_etc.boost_adaptbx_include = os.path.dirname(env_etc.boost_adaptbx_dist) + +@@ -28,7 +34,7 @@ if (not env_etc.no_boost_python): + env_no_includes_boost_python_ext = env_base.Clone( + SHLINKFLAGS=env_etc.shlinkflags_bpl, + SHLIBPREFIX="", +- LIBS=["boost_python"] + env_etc.libs_python + env_etc.libm) ++ LIBS=[env_etc.boost_python] + env_etc.libs_python + env_etc.libm) + env_no_includes_boost_python_ext.Append( + LIBPATH=env_etc.libpath_python) + env_no_includes_boost_python_ext.Append( +@@ -215,10 +221,11 @@ object/function_doc_signature.cpp + bpl_dll_sources = [os.path.join(prefix, path) for path in bpl_dll_sources] + # + env.Repository(os.path.dirname(env_etc.boost_dist)) +- if (env_etc.static_bpl): +- env.StaticLibrary(target="#lib/boost_python", source=bpl_dll_sources) +- else: +- env.SharedLibrary(target="#lib/boost_python", source=bpl_dll_sources) ++ if not env_etc.check_syslib(env_etc.boost_python, extra_libs=env_etc.py_lib): ++ if (env_etc.static_bpl): ++ env.StaticLibrary(target="#lib/boost_python", source=bpl_dll_sources) ++ else: ++ env.SharedLibrary(target="#lib/boost_python", source=bpl_dll_sources) + if (bool(int(ARGUMENTS.get("boost_python_tests", "0")))): + warn_if_unexpected_md5_hexdigest( + path=libtbx.env.under_dist("boost", "libs/python/test/Jamfile.v2"), +diff --git a/cctbx_sources/cbflib_adaptbx/SConscript b/cctbx_sources/cbflib_adaptbx/SConscript +index 4ac6717..334cfc2 100644 +--- a/cctbx_sources/cbflib_adaptbx/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/SConscript +@@ -3,9 +3,14 @@ import os + Import("env_base","env_etc") + + env_etc.cbflib_dist = libtbx.env.dist_path("cbflib") +-env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), +- env_etc.norm_join(env_etc.cbflib_dist,"include"), +- ] ++if not env_etc.check_syslib('cbf'): ++ env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), ++ env_etc.norm_join(env_etc.cbflib_dist,"include"), ++ ] ++else: ++ env_etc.cbflib_include = [env_etc.norm_join(env_etc.cbflib_dist,"examples"), ++ "", ++ ] + env_etc.cbflib_adaptbx_dist = libtbx.env.dist_path("cbflib_adaptbx") + + env_etc.cbflib_common_includes = [ +@@ -34,39 +39,47 @@ cbflib_092_forward = [] + if os.path.isfile( os.path.join(env_etc.cbflib_dist,"src","cbf_ws.c") ): + cbflib_092_forward.append("src/cbf_ws.c") + +-env.StaticLibrary(target='#lib/cbf', +- source = [prefix+"/"+s for s in [ +- "examples/img.c", +- "src/cbf.c", +- "src/cbf_alloc.c", +- "src/cbf_ascii.c", +- "src/cbf_binary.c", +- "src/cbf_byte_offset.c", +- "src/cbf_canonical.c", +- "src/cbf_codes.c", +- "src/cbf_compress.c", +- "src/cbf_context.c", +- "src/cbf_file.c", +- "src/cbf_lex.c", +- "src/cbf_packed.c", +- "src/cbf_predictor.c", +- "src/cbf_read_binary.c", +- "src/cbf_read_mime.c", +- "src/cbf_simple.c", +- "src/cbf_string.c", +- "src/cbf_stx.c", +- "src/cbf_tree.c", +- "src/cbf_uncompressed.c", +- "src/cbf_write.c", +- "src/cbf_write_binary.c", +- "src/md5c.c", +- ] + cbflib_092_forward ] + [ +- "detectors/mar_adaptor.cpp", +- "detectors/cbf_adaptor.cpp", +- "detectors/cbf_byte_offset_optimized.cpp", +- "detectors/buffer_based_service.cpp", +- ], +- CPPPATH=env_etc.cbflib_common_includes ) ++cbflib_src = ["src/cbf.c", ++ "src/cbf_alloc.c", ++ "src/cbf_ascii.c", ++ "src/cbf_binary.c", ++ "src/cbf_byte_offset.c", ++ "src/cbf_canonical.c", ++ "src/cbf_codes.c", ++ "src/cbf_compress.c", ++ "src/cbf_context.c", ++ "src/cbf_file.c", ++ "src/cbf_lex.c", ++ "src/cbf_packed.c", ++ "src/cbf_predictor.c", ++ "src/cbf_read_binary.c", ++ "src/cbf_read_mime.c", ++ "src/cbf_simple.c", ++ "src/cbf_string.c", ++ "src/cbf_stx.c", ++ "src/cbf_tree.c", ++ "src/cbf_uncompressed.c", ++ "src/cbf_write.c", ++ "src/cbf_write_binary.c", ++ "src/md5c.c", ++ ] ++adaptor_src = ["detectors/mar_adaptor.cpp", ++ "detectors/cbf_adaptor.cpp", ++ "detectors/cbf_byte_offset_optimized.cpp", ++ "detectors/buffer_based_service.cpp", ++ ] ++if not env_etc.check_syslib('cbf'): ++ env.StaticLibrary(target='#lib/cbf', ++ source = [prefix+"/"+s for s in [ ++ "examples/img.c"] + cbflib_src + cbflib_092_forward] + adaptor_src, ++ CPPPATH=env_etc.cbflib_common_includes ) ++ env_etc.cbf_lib = ['cbf',] ++else: ++ env.StaticLibrary(target='#lib/cbf_adaptor', ++ source = [prefix+"/"+s for s in [ ++ "examples/img.c"]] + adaptor_src, ++ CPPPATH=env_etc.cbflib_common_includes ) ++ env_etc.cbf_lib = ['cbf','cbf_adaptor'] + + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") +@@ -80,7 +93,7 @@ if (not env_etc.no_boost_python): + env_cbflib_boost_python_ext.SharedLibrary( + target='#lib/_pycbf', + source=[prefix+"/pycbf/pycbf_wrap.c"], +- LIBS=["cbf"]+env_etc.libs_python+env_etc.libm) ++ LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) + + Export("env_cbflib_boost_python_ext") + +@@ -89,7 +102,7 @@ if (not env_etc.no_boost_python): + env_standalone = env.Clone( + LIBS = [env_etc.libm,],CPPPATH=env_etc.cbflib_common_includes + ) +-env_standalone.Prepend(LIBS=["cbf",]) ++env_standalone.Prepend(LIBS=env_etc.cbf_lib) + + for source in ["detectors/tst_memory",]: + target = "cbflib."+os.path.basename(source) +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript +index 2027439..8e987cc 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/SConscript +@@ -1,6 +1,6 @@ +-Import("env_cbflib_boost_python_ext") ++Import("env_cbflib_boost_python_ext", "env_etc") + env = env_cbflib_boost_python_ext.Clone() +-env.Prepend(LIBS=["cbf",]) ++env.Prepend(LIBS=env_etc.cbf_lib) + env.SharedLibrary( + target="#lib/cbflib_ext", + source=["cbflib_ext.cpp",]) +diff --git a/cctbx_sources/ccp4io_adaptbx/SConscript b/cctbx_sources/ccp4io_adaptbx/SConscript +index 0356403..856115a 100644 +--- a/cctbx_sources/ccp4io_adaptbx/SConscript ++++ b/cctbx_sources/ccp4io_adaptbx/SConscript +@@ -43,122 +43,167 @@ else: + # clean out after completely removing support for + # old CCP4 directory structure above + +-build_ccp4io_adaptbx = libtbx.env.under_build("ccp4io_adaptbx") +-if (not op.isdir(build_ccp4io_adaptbx)): +- os.mkdir(build_ccp4io_adaptbx) +- assert op.isdir(build_ccp4io_adaptbx) +- +-def replace_printf(file_name): +- full_path = op.join(path_lib_src, file_name) +- if (not op.isfile(full_path)): +- full_path = op.join(op.dirname(path_lib_src), "fortran", file_name) +- result = ["#include "] +- for line in open(full_path).read().splitlines(): +- for key in ["printf", "fprintf"]: +- matches = list(re.finditer( +- pattern="[^A-Za-z0-9_]%s[^A-Za-z0-9_]" % key, string=line)) +- if (len(matches) != 0): +- for m in reversed(matches): +- s,e = m.start(), m.end() +- line = line[:s] \ +- + line[s:e].replace(key, "ccp4io_%s" % key) \ +- + line[e:] +- result.append(line) +- return "\n".join(result) +- +-env = env_base.Clone( +- SHLINKFLAGS=env_etc.shlinkflags) +-env.Append(CCFLAGS=env_etc.ccp4io_defines) +-env.Append(SHCCFLAGS=env_etc.ccp4io_defines) +-env_etc.include_registry.append( +- env=env, +- paths=[ +- "#", +- op.dirname(env_etc.ccp4io_include), +- env_etc.ccp4io_include, +- op.join(env_etc.ccp4io_dist, "lib", mmdb_src), +- op.join(env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb")]) +-env.Append(LIBS=env_etc.libm) +-# XXX 2012-06-16: is this actually necessary here, or just in code that links to +-# ccp4io.lib? +-if (os.name == "nt") : +- env.Prepend(LIBS=["Advapi32"]) +-if ( op.normcase(op.dirname(env_etc.ccp4io_dist)) +- != op.normcase("ccp4io")): +- env.Repository(op.dirname(env_etc.ccp4io_dist)) + source = [] +- + c_files = [] +-c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ +-library_err.c +-library_file.c +-library_utils.c +-ccp4_array.c +-ccp4_parser.c +-ccp4_unitcell.c +-cvecmat.c +-cmtzlib.c +-""".splitlines()]) +-open(op.join(build_ccp4io_adaptbx, "csymlib.c"), "w").write( +- open(op.join(path_lib_src, "csymlib.c")).read() +- .replace( +- "static int reported_syminfo = 0", +- "static int reported_syminfo = 1")) +-source.append(op.join("#ccp4io_adaptbx", "csymlib.c")) ++if not env_etc.check_syslib('ccp4c')\ ++ or not env_etc.check_syslib('mmdb'): ++ build_ccp4io_adaptbx = libtbx.env.under_build("ccp4io_adaptbx") ++ if (not op.isdir(build_ccp4io_adaptbx)): ++ os.mkdir(build_ccp4io_adaptbx) ++ assert op.isdir(build_ccp4io_adaptbx) ++ ++ def replace_printf(file_name): ++ full_path = op.join(path_lib_src, file_name) ++ if (not op.isfile(full_path)): ++ full_path = op.join(op.dirname(path_lib_src), "fortran", file_name) ++ result = ["#include "] ++ for line in open(full_path).read().splitlines(): ++ for key in ["printf", "fprintf"]: ++ matches = list(re.finditer( ++ pattern="[^A-Za-z0-9_]%s[^A-Za-z0-9_]" % key, string=line)) ++ if (len(matches) != 0): ++ for m in reversed(matches): ++ s,e = m.start(), m.end() ++ line = line[:s] \ ++ + line[s:e].replace(key, "ccp4io_%s" % key) \ ++ + line[e:] ++ result.append(line) ++ return "\n".join(result) ++ env = env_base.Clone( ++ SHLINKFLAGS=env_etc.shlinkflags) ++ env.Append(CCFLAGS=env_etc.ccp4io_defines) ++ env.Append(SHCCFLAGS=env_etc.ccp4io_defines) ++ env_etc.include_registry.append( ++ env=env, ++ paths=[ ++ "#", ++ op.dirname(env_etc.ccp4io_include), ++ env_etc.ccp4io_include, ++ op.join(env_etc.ccp4io_dist, "lib", mmdb_src), ++ op.join(env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb")]) ++ ++ env.Append(LIBS=env_etc.libm) ++ # XXX 2012-06-16: is this actually necessary here, or just in code that links to ++ # ccp4io.lib? ++ if (os.name == "nt") : ++ env.Prepend(LIBS=["Advapi32"]) ++ if ( op.normcase(op.dirname(env_etc.ccp4io_dist)) ++ != op.normcase("ccp4io")): ++ env.Repository(op.dirname(env_etc.ccp4io_dist)) + +-probe_file_name = op.join(path_lib_src, "cmaplib.h") +-env_etc.ccp4io_has_cmaplib = op.isfile(probe_file_name) +-if (env_etc.ccp4io_has_cmaplib): + c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ +-cmap_accessor.c +-cmap_close.c +-cmap_data.c +-cmap_header.c +-cmap_labels.c +-cmap_open.c +-cmap_skew.c +-cmap_stats.c +-cmap_symop.c +-""".splitlines()]) ++ library_err.c ++ library_file.c ++ library_utils.c ++ ccp4_array.c ++ ccp4_parser.c ++ ccp4_unitcell.c ++ cvecmat.c ++ cmtzlib.c ++ """.splitlines()]) ++ open(op.join(build_ccp4io_adaptbx, "csymlib.c"), "w").write( ++ open(op.join(path_lib_src, "csymlib.c")).read() ++ .replace( ++ "static int reported_syminfo = 0", ++ "static int reported_syminfo = 1")) ++ source.append(op.join("#ccp4io_adaptbx", "csymlib.c")) + +-c_files.extend(["%s/mmdb/%s.cpp" % ( mmdb_src, bn ) for bn in """\ +-bfgs_min +-file_ +-hybrid_36 +-linalg_ +-machine_ +-math_ +-mattype_ +-mmdb_align +-mmdb_atom +-mmdb_bondmngr +-mmdb_chain +-mmdb_cifdefs +-mmdb_coormngr +-mmdb_cryst +-mmdb_ficif +-mmdb_file +-mmdb_graph +-mmdb_manager +-mmdb_mask +-mmdb_mmcif +-mmdb_model +-mmdb_rwbrook +-mmdb_sbase +-mmdb_sbase0 +-mmdb_selmngr +-mmdb_symop +-mmdb_tables +-mmdb_title +-mmdb_uddata +-mmdb_utils +-mmdb_xml +-random_n +-stream_ +-""".splitlines()]) +-prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib") +-for file_name in c_files: +- source.append(op.join(prefix, file_name)) ++ probe_file_name = op.join(path_lib_src, "cmaplib.h") ++ env_etc.ccp4io_has_cmaplib = op.isfile(probe_file_name) ++ if (env_etc.ccp4io_has_cmaplib): ++ c_files.extend(["%s/%s" % (ccp4_src, bn ) for bn in """\ ++ cmap_accessor.c ++ cmap_close.c ++ cmap_data.c ++ cmap_header.c ++ cmap_labels.c ++ cmap_open.c ++ cmap_skew.c ++ cmap_stats.c ++ cmap_symop.c ++ """.splitlines()]) ++ ++ c_files.extend(["%s/mmdb/%s.cpp" % ( mmdb_src, bn ) for bn in """\ ++ bfgs_min ++ file_ ++ hybrid_36 ++ linalg_ ++ machine_ ++ math_ ++ mattype_ ++ mmdb_align ++ mmdb_atom ++ mmdb_bondmngr ++ mmdb_chain ++ mmdb_cifdefs ++ mmdb_coormngr ++ mmdb_cryst ++ mmdb_ficif ++ mmdb_file ++ mmdb_graph ++ mmdb_manager ++ mmdb_mask ++ mmdb_mmcif ++ mmdb_model ++ mmdb_rwbrook ++ mmdb_sbase ++ mmdb_sbase0 ++ mmdb_selmngr ++ mmdb_symop ++ mmdb_tables ++ mmdb_title ++ mmdb_uddata ++ mmdb_utils ++ mmdb_xml ++ random_n ++ stream_ ++ """.splitlines()]) ++ prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib") ++ for file_name in c_files: ++ source.append(op.join(prefix, file_name)) ++ ++ ssm_prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib", "ssm") ++ ssm_sources = """\ ++ ss_csia.cpp ++ ss_graph.cpp ++ ss_vxedge.cpp ++ ssm_align.cpp ++ ssm_superpose.cpp ++ """.splitlines() ++ source.extend( [ op.join( ssm_prefix, f ) for f in ssm_sources ] ) ++ ++ need_f_c = ( ++ libtbx.env.has_module("solve_resolve") ++ or libtbx.env.find_in_repositories(relative_path="mosflm_fable")) ++ if (need_f_c or os.name != "nt"): ++ source.append(op.join("#ccp4io_adaptbx", "fortran_call_stubs.c")) ++ for file_name in """\ ++ ccp4_diskio_f.c ++ ccp4_general.c ++ ccp4_general_f.c ++ ccp4_parser_f.c ++ ccp4_program.c ++ ccp4_unitcell_f.c ++ cmaplib_f.c ++ cmtzlib_f.c ++ csymlib_f.c ++ library_f.c ++ """.splitlines(): ++ open(op.join(build_ccp4io_adaptbx, file_name), "w").write( ++ replace_printf(file_name=file_name)) ++ source.append(op.join("#ccp4io_adaptbx", file_name)) ++ source.append(op.join("#ccp4io_adaptbx", "printf_wrappers.c")) ++ env_etc.ccp4io_lib = "ccp4io" ++ mmdb_path= [ os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src ), ++ os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb" ), ++ ] ++else: ++ env = env_base.Clone( ++ SHLINKFLAGS=env_etc.shlinkflags) ++ env.Append(CCFLAGS=env_etc.ccp4io_defines) ++ env.Append(SHCCFLAGS=env_etc.ccp4io_defines) ++ env_etc.ccp4io_lib = ["ccp4io", "mmdb", "ccp4c"] ++ mmdb_path= [] + + ssm_prefix = "#"+op.join(op.basename(env_etc.ccp4io_dist), "lib", "ssm") + ssm_sources = """\ +@@ -170,46 +215,20 @@ ssm_superpose.cpp + """.splitlines() + source.extend( [ op.join( ssm_prefix, f ) for f in ssm_sources ] ) + +-need_f_c = ( +- libtbx.env.has_module("solve_resolve") +- or libtbx.env.find_in_repositories(relative_path="mosflm_fable")) +-if (need_f_c or os.name != "nt"): +- source.append(op.join("#ccp4io_adaptbx", "fortran_call_stubs.c")) +- for file_name in """\ +-ccp4_diskio_f.c +-ccp4_general.c +-ccp4_general_f.c +-ccp4_parser_f.c +-ccp4_program.c +-ccp4_unitcell_f.c +-cmaplib_f.c +-cmtzlib_f.c +-csymlib_f.c +-library_f.c +-""".splitlines(): +- open(op.join(build_ccp4io_adaptbx, file_name), "w").write( +- replace_printf(file_name=file_name)) +- source.append(op.join("#ccp4io_adaptbx", file_name)) +- source.append(op.join("#ccp4io_adaptbx", "printf_wrappers.c")) +- + # static library for solve_resolve + env.StaticLibrary(target='#lib/ccp4io', source=source) +-env_etc.ccp4io_lib = "ccp4io" + + if ( libtbx.env.has_module("boost") + and not env_etc.no_boost_python): + Import( "env_no_includes_boost_python_ext" ) + sources = [ "#ccp4io_adaptbx/ext.cpp" ] + env_ext = env_no_includes_boost_python_ext.Clone() +- env_ext.Prepend( LIBS = "ccp4io" ) ++ env_ext.Prepend( LIBS = env_etc.ccp4io_lib ) + env_etc.include_registry.append( + env = env_ext, +- paths = [ +- os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src ), +- os.path.join( env_etc.ccp4io_dist, "lib", mmdb_src, "mmdb" ), +- os.path.join( env_etc.ccp4io_dist, "lib", "ssm"), +- env_etc.boost_include, +- env_etc.python_include, +- ] ++ paths = mmdb_path + [ os.path.join( env_etc.ccp4io_dist, "lib", "ssm"), ++ env_etc.boost_include, ++ env_etc.python_include, ++ ] + ) + env_ext.SharedLibrary( target = "#lib/ccp4io_adaptbx_ext", source = sources ) +diff --git a/cctbx_sources/cctbx/SConscript b/cctbx_sources/cctbx/SConscript +index 162f019..1321069 100644 +--- a/cctbx_sources/cctbx/SConscript ++++ b/cctbx_sources/cctbx/SConscript +@@ -108,7 +108,7 @@ if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + + env_cctbx_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_cctbx_boost_python_ext.Prepend(LIBS=["scitbx_boost_python"]) ++ env_cctbx_boost_python_ext.Prepend(LIBS=[env_etc.scitbx_boost_python]) + env_etc.include_registry.append( + env=env_cctbx_boost_python_ext, + paths=env_etc.cctbx_common_includes + [env_etc.python_include]) +diff --git a/cctbx_sources/clipper_adaptbx/SConscript b/cctbx_sources/clipper_adaptbx/SConscript +index 9cce49e..c39047f 100644 +--- a/cctbx_sources/clipper_adaptbx/SConscript ++++ b/cctbx_sources/clipper_adaptbx/SConscript +@@ -3,54 +3,63 @@ Import("env_base", "env_etc") + + env_etc.clipper_dist = libtbx.env.dist_path("clipper") + env_etc.clipper_include = env_etc.clipper_dist ++# This way the compiler looks in the standard location for includes ++# should work on all platforms ++env_etc.clipper_sysinclude = '' + + env = env_base.Clone( + SHLINKFLAGS=env_etc.shlinkflags, + LIBS=env_etc.libm) +-env.Prepend(CPPPATH=[env_etc.clipper_include]) +- +-if (env_etc.static_libraries): builder = env.StaticLibrary +-else: builder = env.SharedLibrary +-builder(target='#lib/clipper', +- source = ["../clipper/clipper/core/"+file_name for file_name in """ +- atomsf.cpp +- cell.cpp +- clipper_memory.cpp +- clipper_message.cpp +- clipper_stats.cpp +- clipper_types.cpp +- clipper_util.cpp +- container.cpp +- container_hkl.cpp +- container_map.cpp +- container_types.cpp +- coords.cpp +- derivs.cpp +- hkl_compute.cpp +- hkl_data.cpp +- hkl_datatypes.cpp +- hkl_info.cpp +- hkl_lookup.cpp +- hkl_operators.cpp +- map_interp.cpp +- map_utils.cpp +- nxmap.cpp +- nxmap_operator.cpp +- ramachandran.cpp +- resol_basisfn.cpp +- resol_fn.cpp +- resol_targetfn.cpp +- rotation.cpp +- spacegroup.cpp +- spacegroup_data.cpp +- symop.cpp +- xmap.cpp +-""".split()]) +-# fftmap_sparse.cpp +-# fftmap.cpp ++if env_etc.check_syslib('clipper-core') and \ ++ env_etc.check_syslib('clipper-contrib'): ++ env.Prepend(CPPPATH=[env_etc.clipper_sysinclude]) ++ env_etc.clipper_libs=['clipper-core', 'clipper-contrib'] ++ env_etc.has_clipper_contrib = True ++else: ++ env.Prepend(CPPPATH=[env_etc.clipper_include]) ++ env_etc.clipper_libs=['clipper',] ++ if (env_etc.static_libraries): builder = env.StaticLibrary ++ else: builder = env.SharedLibrary ++ builder(target='#lib/'+env_etc.clipper_libs[0], ++ source = ["../clipper/clipper/core/"+file_name for file_name in """ ++ atomsf.cpp ++ cell.cpp ++ clipper_memory.cpp ++ clipper_message.cpp ++ clipper_stats.cpp ++ clipper_types.cpp ++ clipper_util.cpp ++ container.cpp ++ container_hkl.cpp ++ container_map.cpp ++ container_types.cpp ++ coords.cpp ++ derivs.cpp ++ hkl_compute.cpp ++ hkl_data.cpp ++ hkl_datatypes.cpp ++ hkl_info.cpp ++ hkl_lookup.cpp ++ hkl_operators.cpp ++ map_interp.cpp ++ map_utils.cpp ++ nxmap.cpp ++ nxmap_operator.cpp ++ ramachandran.cpp ++ resol_basisfn.cpp ++ resol_fn.cpp ++ resol_targetfn.cpp ++ rotation.cpp ++ spacegroup.cpp ++ spacegroup_data.cpp ++ symop.cpp ++ xmap.cpp ++ """.split()]) ++ # fftmap_sparse.cpp ++ # fftmap.cpp + + env_exe = env.Clone() +-env_exe.Prepend(LIBS=["clipper"]) ++env_exe.Prepend(LIBS=[env_etc.clipper_libs[0]]) + + exe = env_exe.Program( + target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' +@@ -77,6 +86,7 @@ if (hasattr(env_etc, "cctbx_include")): + env=env_clipper_boost_python_ext, + paths=[ + env_etc.clipper_include, ++ env_etc.clipper_sysinclude, + env_etc.libtbx_include, + env_etc.cctbx_include, + env_etc.scitbx_include, +diff --git a/cctbx_sources/clipper_adaptbx/clipper/SConscript b/cctbx_sources/clipper_adaptbx/clipper/SConscript +index 9f79f83..1911eb1 100644 +--- a/cctbx_sources/clipper_adaptbx/clipper/SConscript ++++ b/cctbx_sources/clipper_adaptbx/clipper/SConscript +@@ -1,6 +1,10 @@ +-Import("env_clipper_boost_python_ext") ++Import("env_clipper_boost_python_ext", "env_etc") + env = env_clipper_boost_python_ext.Clone() +-env.Prepend(LIBS=["clipper", "cctbx"]) ++env.Prepend(LIBS=env_etc.clipper_libs+["cctbx"]) ++if (env_etc.has_clipper_contrib): ++ clipper_contrib_files = [] ++else: ++ clipper_contrib_files = ["../../clipper/clipper/contrib/sfweight.cpp",] + env.SharedLibrary( + target="#lib/clipper_ext", + source=[ +@@ -8,4 +12,4 @@ env.SharedLibrary( + "hendrickson_lattman_bpl.cpp", + "sigmaa_bpl.cpp", + "../../clipper/clipper/contrib/sfweight.cpp", +- "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]) ++ "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]+clipper_contrib_files) +diff --git a/cctbx_sources/gltbx/SConscript b/cctbx_sources/gltbx/SConscript +index d02e7a5..e90f6c3 100644 +--- a/cctbx_sources/gltbx/SConscript ++++ b/cctbx_sources/gltbx/SConscript +@@ -12,14 +12,15 @@ env_etc.gltbx_common_includes = [ + env_etc.scitbx_include, + env_etc.boost_include, + ] +-if (gl2ps_path is not None): +- env_etc.gltbx_common_includes.append(gl2ps_path) ++if not env_etc.check_syslib('gl2ps', extra_libs='GL'): ++ if (gl2ps_path is not None): ++ env_etc.gltbx_common_includes.append(gl2ps_path) + + if (not env_etc.no_boost_python): + Import("env_base", "env_no_includes_boost_python_ext") + trial_env = env_base.Clone() + env = env_no_includes_boost_python_ext.Clone() +- env.Prepend(LIBS=["scitbx_boost_python"]) ++ env.Prepend(LIBS=[env_etc.scitbx_boost_python]) + if (env_etc.compiler == "win32_cl"): + for e in [trial_env, env]: + e.Append(LIBS=["glu32", "opengl32"]) +@@ -79,10 +80,15 @@ int main() { std::cout << GL_POINT << std::endl; return 0; } + source=source) + env_util = env + source = ["util_ext.cpp"] +- if (gl2ps_path is not None): +- source.append("#gui_resources/gl2ps/gl2ps.c") +- env_util = env.Clone() +- env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ if not env_etc.check_syslib('gl2ps', extra_libs='GL'): ++ if (gl2ps_path is not None): ++ source.append("#gui_resources/gl2ps/gl2ps.c") ++ env_util = env.Clone() ++ env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ else: ++ env_util = env.Clone() ++ env_util.Append(SHCXXFLAGS=["-DGLTBX_HAVE_GL2PS"]) ++ env_util.Append(LIBS=["gl2ps"]) + env_util.SharedLibrary( + target="#lib/gltbx_util_ext", + source=source) +diff --git a/cctbx_sources/iotbx/cif/boost_python/SConscript b/cctbx_sources/iotbx/cif/boost_python/SConscript +index 49837af..2833ff1 100644 +--- a/cctbx_sources/iotbx/cif/boost_python/SConscript ++++ b/cctbx_sources/iotbx/cif/boost_python/SConscript +@@ -34,15 +34,18 @@ antlr3_src_files = [ + ] + + prefix = "#ucif/antlr3/src" +-source = [os.path.join(prefix, file_name) for file_name in antlr3_src_files] ++if not env_etc.check_syslib('antlr3c'): ++ source = [os.path.join(prefix, file_name) for file_name in antlr3_src_files] ++ env_etc.include_registry.append( ++ env=env, ++ paths=[antlr3_include, antlr3_dist]) ++else: ++ source = [] ++ env.Append(LIBS=['antlr3c']) + source.extend([ + "cif_ext.cpp", + "#ucif/cifParser.cpp", + "#ucif/cifLexer.cpp", + ]) + +-env_etc.include_registry.append( +- env=env, +- paths=[antlr3_include, antlr3_dist]) +- + env.SharedLibrary(target="#lib/iotbx_cif_ext", source=source) +diff --git a/cctbx_sources/iotbx/mtz/SConscript b/cctbx_sources/iotbx/mtz/SConscript +index 76fb87c..4019731 100644 +--- a/cctbx_sources/iotbx/mtz/SConscript ++++ b/cctbx_sources/iotbx/mtz/SConscript +@@ -23,7 +23,8 @@ if (not env_etc.no_boost_python): + env = env_iotbx_boost_python_ext.Clone() + env.Append(CXXFLAGS=env_etc.ccp4io_defines) + env.Append(SHCXXFLAGS=env_etc.ccp4io_defines) +- env.Prepend(LIBS=["iotbx_mtz", "cctbx", ccp4io_lib, "scitbx_boost_python"]) ++ env.Prepend(LIBS=["iotbx_mtz", "cctbx", ccp4io_lib, ++ env_etc.scitbx_boost_python]) + if (os.name == "nt") : + env.Prepend(LIBS=["Advapi32"]) + env_etc.enable_more_warnings(env=env) +diff --git a/cctbx_sources/iotbx/pdb/SConscript b/cctbx_sources/iotbx/pdb/SConscript +index 6af2664..9b89fe1 100644 +--- a/cctbx_sources/iotbx/pdb/SConscript ++++ b/cctbx_sources/iotbx/pdb/SConscript +@@ -33,7 +33,7 @@ env.Program(target="hybrid_36_fem", source=["hybrid_36_fem.cpp"]) + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["iotbx_pdb", "cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["iotbx_pdb", "cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/iotbx_pdb_ext", +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index c273536..5aced44 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -1071,4 +1071,88 @@ def enable_cuda_if_possible(): + enable_openmp_if_possible() + enable_cuda_if_possible() + ++env_etc.use_system_libs = False ++def check_syslib(lib, extra_libs=None): ++ """ Check if a system library is available """ ++ if not env_etc.use_system_libs: ++ return False ++ env_syslib = env_base.Clone(LIBS=extra_libs) ++ conf = env_syslib.Configure() ++ if not conf.CheckLib(library=lib): ++ print 'Could not find %s library!'%(lib) ++ conf.Finish() ++ return False ++ else: ++ conf.Finish() ++ return True ++env_etc.check_syslib = check_syslib ++ ++env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) ++ ++if (libtbx.env.build_options.use_system_libs): ++ env_etc.use_system_libs = True ++ ++deb_py_str = '-py%s%s'%(sys.version[0], sys.version[2]) ++gentoo_py_str = '-%s.%s'%(sys.version[0], sys.version[2]) ++# This list can be extended by other distro's ++py_str_lst = [deb_py_str, gentoo_py_str] ++ ++for py_str in py_str_lst: ++ if env_etc.check_syslib('boost_python%s'%py_str, ++ extra_libs=env_etc.py_lib): ++ env_etc.boost_python = 'boost_python%s'%py_str ++ env_etc.scitbx_boost_python = 'scitbx_boost_python%s'%py_str ++ break ++ else: ++ env_etc.boost_python = 'boost_python' ++ env_etc.scitbx_boost_python = 'scitbx_boost_python' ++ ++env_etc.prefix = libtbx.env.build_options.install_prefix ++env_etc.destdir = libtbx.env.build_options.install_destdir ++env_etc.libdir = libtbx.env.build_options.libdir ++env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) ++env_etc.binpath = os.path.join(env_etc.install_path, 'bin') ++env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) ++env_etc.inclpath = os.path.join(env_etc.install_path, 'include') ++env_etc.rpath = os.path.join(env_etc.prefix, 'lib') ++ ++def create_install_targets(): ++ cwd = os.getcwd() ++ rp = libtbx.env.repository_paths ++ lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ exe_dev = libtbx.env.under_build("exe_dev") ++ include_path = libtbx.env.include_path ++ if not os.path.exists(lib_dir): ++ os.makedirs(lib_dir) ++ rp = list(rp) ++ rp.append(lib_dir) ++ rp.append(include_path) ++ for p in rp: ++ if isinstance(p, str): ++ src_dir = p ++ else: ++ src_dir = abs(p) ++ os.chdir(src_dir) ++ dest = None ++ for root, dirnames, filenames in os.walk('.'): ++ for filename in filenames: ++ if re.match('^lib.*\.(so.*|dylib.*|la|a)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-shlib", dest) ++ if re.match('^.*\.(h|hpp)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.inclpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-header", dest) ++ dest = env_etc.binpath ++ env_base.Install(dest, Glob('%s/*'%(exe_dev))) ++ env_base.Alias("install-bin", dest) ++ Alias('install', ['install-header', 'install-shlib', 'install-bin']) ++ os.chdir(cwd) ++ ++if 'install' in COMMAND_LINE_TARGETS: ++ create_install_targets() ++ + Export("env_base", "env_etc") +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 41b6f91..ddf2848 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -740,6 +740,10 @@ Wait for the command to finish, then try again.""" % vars()) + precompile_headers=command_line.options.precompile_headers, + static_libraries=command_line.options.static_libraries, + static_exe=command_line.options.static_exe, ++ use_system_libs=command_line.options.use_system_libs, ++ install_prefix=command_line.options.install_prefix, ++ libdir=command_line.options.libdir, ++ install_destdir=command_line.options.install_destdir, + scan_boost=command_line.options.scan_boost, + write_full_flex_fwd_h=command_line.options.write_full_flex_fwd_h, + boost_python_no_py_signatures +@@ -1799,6 +1803,10 @@ class build_options: + warning_level, + static_libraries, + static_exe, ++ use_system_libs, ++ install_prefix, ++ libdir, ++ install_destdir, + scan_boost, + write_full_flex_fwd_h=default_write_full_flex_fwd_h, + build_boost_python_extensions=default_build_boost_python_extensions, +@@ -1860,6 +1868,10 @@ class build_options: + self.boost_python_bool_int_strict + print >> f, "Enable OpenMP if possible:", self.enable_openmp_if_possible + print >> f, "Enable CUDA:", self.enable_cuda ++ print >> f, "Use System Libraries:", self.use_system_libs ++ print >> f, "Install Prefix:", self.install_prefix ++ print >> f, "Libdir:", self.libdir ++ print >> f, "Install Destdir:", self.install_destdir + print >> f, "Use opt_resources if available:", self.opt_resources + print >> f, "Use environment flags:", self.use_environment_flags + if( self.use_environment_flags ): +@@ -1983,6 +1995,28 @@ class pre_process_args: + action="store_true", + default=False, + help="link all executables statically (implies --static_libraries)") ++ parser.option(None, "--use_system_libs", ++ action="store_true", ++ default=False, ++ help="Use system Libraries to build.") ++ parser.option(None, "--install_destdir", ++ type="string", ++ action="store", ++ default="", ++ help="sets the destdir for the install targets.", ++ metavar="DIRECTORY") ++ parser.option(None, "--libdir", ++ type="string", ++ action="store", ++ default="lib", ++ help="sets the libdir relative to the PREFIX for the install targets. Default: lib", ++ metavar="DIRECTORY") ++ parser.option(None, "--install_prefix", ++ type="string", ++ action="store", ++ default="/usr/local", ++ help="sets the prefix for the install targets. Default: /usr/local", ++ metavar="DIRECTORY") + parser.option(None, "--scan_boost", + action="store_true", + default=False, +diff --git a/cctbx_sources/mmtbx/cablam/SConscript b/cctbx_sources/mmtbx/cablam/SConscript +index 67b1edb..36a11bc 100644 +--- a/cctbx_sources/mmtbx/cablam/SConscript ++++ b/cctbx_sources/mmtbx/cablam/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_cablam_align_utils_ext", +diff --git a/cctbx_sources/mmtbx/den/SConscript b/cctbx_sources/mmtbx/den/SConscript +index 2d3ce36..1a2b171 100644 +--- a/cctbx_sources/mmtbx/den/SConscript ++++ b/cctbx_sources/mmtbx/den/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_den_restraints_ext", +diff --git a/cctbx_sources/mmtbx/geometry_restraints/SConscript b/cctbx_sources/mmtbx/geometry_restraints/SConscript +index b9ee02c..72af551 100644 +--- a/cctbx_sources/mmtbx/geometry_restraints/SConscript ++++ b/cctbx_sources/mmtbx/geometry_restraints/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_hbond_restraints_ext", +diff --git a/cctbx_sources/mmtbx/secondary_structure/SConscript b/cctbx_sources/mmtbx/secondary_structure/SConscript +index 7e82b43..5698af5 100644 +--- a/cctbx_sources/mmtbx/secondary_structure/SConscript ++++ b/cctbx_sources/mmtbx/secondary_structure/SConscript +@@ -3,7 +3,7 @@ Import("env_etc") + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") + env = env_iotbx_boost_python_ext.Clone() +- env.Prepend(LIBS=["cctbx", "scitbx_boost_python"]) ++ env.Prepend(LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_etc.enable_more_warnings(env=env) + env.SharedLibrary( + target="#lib/mmtbx_secondary_structure_ext", +diff --git a/cctbx_sources/rstbx/SConscript b/cctbx_sources/rstbx/SConscript +index d79b762..a049b88 100644 +--- a/cctbx_sources/rstbx/SConscript ++++ b/cctbx_sources/rstbx/SConscript +@@ -39,7 +39,7 @@ if (not env_etc.no_boost_python): + Import("env_boost_python_ext") + env_rstbx_boost_python_ext = env_boost_python_ext.Clone() + env_rstbx_boost_python_ext.Prepend( +- LIBS=["rstbx", "cctbx", "scitbx_boost_python"]) ++ LIBS=["rstbx", "cctbx", env_etc.scitbx_boost_python]) + env_rstbx_boost_python_ext.SharedLibrary( + target="#lib/rstbx_ext", source="ext.cpp") + env_rstbx_boost_python_ext.SharedLibrary( +diff --git a/cctbx_sources/scitbx/SConscript b/cctbx_sources/scitbx/SConscript +index 9199ae0..6045fbc 100644 +--- a/cctbx_sources/scitbx/SConscript ++++ b/cctbx_sources/scitbx/SConscript +@@ -28,7 +28,7 @@ SConscript("sparse/tests/SConscript") + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + env_scitbx_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_scitbx_boost_python_ext.Prepend(LIBS=["scitbx_boost_python"]) ++ env_scitbx_boost_python_ext.Prepend(LIBS=[env_etc.scitbx_boost_python]) + env_etc.include_registry.append( + env=env_scitbx_boost_python_ext, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index eda7b03..1f396e5 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -7,7 +7,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(LIBPATH=env_etc.libpath_python) +-env.Append(LIBS=["boost_python"] + env_etc.libs_python) ++env.Append(LIBS=[env_etc.boost_python] + env_etc.libs_python) + env_etc.include_registry.append( + env=env, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) +@@ -20,5 +20,5 @@ lib_scitbx_boost_python_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + builder( +- target="#lib/scitbx_boost_python", ++ target="#lib/%s"%env_etc.scitbx_boost_python, + source=lib_scitbx_boost_python_sources) +diff --git a/cctbx_sources/smtbx/refinement/boost_python/SConscript b/cctbx_sources/smtbx/refinement/boost_python/SConscript +index 0387e1d..5144996 100644 +--- a/cctbx_sources/smtbx/refinement/boost_python/SConscript ++++ b/cctbx_sources/smtbx/refinement/boost_python/SConscript +@@ -1,6 +1,6 @@ +-Import("env_smtbx_boost_python_ext") ++Import("env_smtbx_boost_python_ext", "env_etc") + env = env_smtbx_boost_python_ext.Clone() +-env.Prepend(LIBS=["smtbx_refinement_constraints", "scitbx_boost_python"]) ++env.Prepend(LIBS=["smtbx_refinement_constraints", env_etc.scitbx_boost_python]) + env.SharedLibrary(target="#lib/smtbx_refinement_least_squares_ext", source=[ + "least_squares_ext.cpp", + "weighting_schemes.cpp", +diff --git a/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript b/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript +index 009d288..1eb176b 100644 +--- a/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript ++++ b/cctbx_sources/smtbx/refinement/constraints/boost_python/SConscript +@@ -1,5 +1,5 @@ +-Import("env_smtbx_boost_python_ext") ++Import("env_smtbx_boost_python_ext", "env_etc") + env = env_smtbx_boost_python_ext.Clone() +-env.Prepend(LIBS=["smtbx_refinement_constraints", "scitbx_boost_python"]) ++env.Prepend(LIBS=["smtbx_refinement_constraints", env_etc.scitbx_boost_python]) + env.SharedLibrary(target="#lib/smtbx_refinement_constraints_ext", + source=Glob("*.cpp")) +diff --git a/cctbx_sources/spotfinder/SConscript b/cctbx_sources/spotfinder/SConscript +index 1d280d4..1d73677 100644 +--- a/cctbx_sources/spotfinder/SConscript ++++ b/cctbx_sources/spotfinder/SConscript +@@ -54,7 +54,7 @@ if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") + + env_spotfinder_boost_python_ext = env_no_includes_boost_python_ext.Clone() +- env_spotfinder_boost_python_ext.Prepend(LIBS=[ "scitbx_boost_python"]) ++ env_spotfinder_boost_python_ext.Prepend(LIBS=[ env_etc.scitbx_boost_python ]) + env_etc.include_registry.append( + env=env_spotfinder_boost_python_ext, + paths=env_etc.spotfinder_common_includes + [env_etc.python_include]) +diff --git a/cctbx_sources/xfel/SConscript b/cctbx_sources/xfel/SConscript +index e680f73..3397762 100644 +--- a/cctbx_sources/xfel/SConscript ++++ b/cctbx_sources/xfel/SConscript +@@ -31,7 +31,7 @@ if (not env_etc.no_boost_python): + Import("env_boost_python_ext") + env_xfel_boost_python_ext = env_boost_python_ext.Clone() + env_xfel_boost_python_ext.Prepend( +- LIBS=["cctbx", "scitbx_boost_python"]) ++ LIBS=["cctbx", env_etc.scitbx_boost_python]) + env_xfel_boost_python_ext.SharedLibrary( + target="#lib/xfel_ext", source="ext.cpp") + env_xfel_boost_python_ext.SharedLibrary( diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0007-adding-shlib-versioning.patch b/sci-libs/cctbx/files/2013.02.27.0005/0007-adding-shlib-versioning.patch new file mode 100644 index 0000000..fd1888e --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0007-adding-shlib-versioning.patch @@ -0,0 +1,208 @@ +From: Radostan Riedel +Date: Mon, 23 Jul 2012 18:33:07 +0200 +Subject: adding-shlib-versioning + +--- + cctbx_sources/boost_adaptbx/SConscript | 3 + + cctbx_sources/libtbx/SConscript | 115 +++++++++++++++++++++++++++++--- + cctbx_sources/libtbx/env_config.py | 7 ++ + 3 files changed, 116 insertions(+), 9 deletions(-) + +diff --git a/cctbx_sources/boost_adaptbx/SConscript b/cctbx_sources/boost_adaptbx/SConscript +index 68cac89..dedbb05 100644 +--- a/cctbx_sources/boost_adaptbx/SConscript ++++ b/cctbx_sources/boost_adaptbx/SConscript +@@ -58,6 +58,9 @@ if (not env_etc.no_boost_python): + SHLINKFLAGS=env_etc.shlinkflags_bpl, + SHLIBPREFIX="", + LIBS=[env_etc.boost_python] + env_etc.libs_python + env_etc.libm) ++ if (libtbx.env.build_options.libtoolize): ++ # Need to unset libtool since it does not support linking python-ext ++ env_etc.unset_libtool(env_no_includes_boost_python_ext) + env_no_includes_boost_python_ext.Append( + LIBPATH=env_etc.libpath_python) + env_no_includes_boost_python_ext.Append( +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 429c44b..58bdd30 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -1061,16 +1061,99 @@ env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) + env_etc.binpath = os.path.join(env_etc.install_path, 'bin') + env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) + env_etc.inclpath = os.path.join(env_etc.install_path, 'include') +-env_etc.rpath = os.path.join(env_etc.prefix, 'lib') ++env_etc.rpath = os.path.abspath(env_etc.prefix + '/' + env_etc.libdir) ++ ++def set_libtool(env): ++ # Versioning can be provided by appending "-version-info 3:12:1" to SHLINKFLAGS ++ # Please see: ++ # http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html ++ # for reference. Otherwise it will be set to 0:0:0 ++ env_etc.shobjsuffix_save = env['SHOBJSUFFIX'] ++ env_etc.SharedLibBuilder_save = env['BUILDERS']['SharedLibrary'] ++ env.Replace( ++ SHLINKFLAGS='-rpath ' + env_etc.rpath, ++ SHOBJSUFFIX='.lo', ++ SHLIBSUFFIX='.la', ++ ) ++ LIBTOOLCOM = 'libtool --mode=compile --tag=' ++ LIBTOOLCCOM = LIBTOOLCOM + 'CC ' ++ LIBTOOLCXXCOM = LIBTOOLCOM + 'CXX ' ++ LIBTOOLLINK = 'libtool --mode=link --tag=CXX ' ++ ShCAction = SCons.Action.Action(LIBTOOLCCOM + "$SHCCCOM", "$SHCCCOMSTR") ++ ShCXXAction = SCons.Action.Action(LIBTOOLCXXCOM + "$SHCXXCOM", "$SHCXXCOMSTR") ++ ShLinkAction = SCons.Action.Action(LIBTOOLLINK + "$SHLINKCOM", "$SHLINKCOMSTR") ++ libtool_install = 'libtool --mode=install install -D ${TARGET.abspath} %s%s/${TARGET.file}'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ ++ action_list = [ SCons.Defaults.SharedCheck, ++ ShLinkAction, ++ libtool_install, ++ ] ++ CSuffixes = SCons.Tool.cc.CSuffixes ++ # Can't import SCons.Tool.c++.CSuffixes because of that 'c++' ++ CXXSuffixes = ['.cpp', '.cc', '.cxx', '.c++', '.C++', '.mm'] ++ shared_obj = SCons.Builder.Builder(action = {}, ++ emitter = {}, ++ prefix = '$SHOBJPREFIX', ++ suffix = '$SHOBJSUFFIX', ++ src_builder = ['CFile', 'CXXFile'], ++ source_scanner = SourceFileScanner, ++ single_source = 1) ++ for suffix in CXXSuffixes: ++ shared_obj.add_action(suffix, ShCXXAction) ++ shared_obj.add_emitter(suffix, SCons.Defaults.SharedObjectEmitter) ++ for suffix in CSuffixes: ++ shared_obj.add_action(suffix, ShCAction) ++ shared_obj.add_emitter(suffix, SCons.Defaults.SharedObjectEmitter) ++ ++ LibtoolBuilder = SCons.Builder.Builder(action = action_list, ++ emitter = "$SHLIBEMITTER", ++ prefix = '$SHLIBPREFIX', ++ suffix = '$SHLIBSUFFIX', ++ target_scanner = ProgramScanner, ++ src_suffix = '$SHOBJSUFFIX', ++ src_builder = shared_obj) ++ ++ from SCons.Tool.install import add_targets_to_INSTALLED_FILES ++ LibtoolInstall = SCons.Builder.Builder( ++ action = 'libtool --mode=install install -D ${SOURCE.abspath} ${TARGET.abspath}', ++ target_factory = env.fs.Entry, ++ source_factory = env.fs.Entry, ++ multi = 1, ++ emitter = [ add_targets_to_INSTALLED_FILES, ], ++ name = 'LibtoolInstall') ++ ++ env['BUILDERS']['LibtoolInstall'] = LibtoolInstall ++ ++ lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ if not os.path.exists(lib_dir): ++ os.makedirs(lib_dir) ++ libtool_install_path = '#lib' + env_etc.rpath ++ env.Append(LIBPATH=libtool_install_path) ++ env['BUILDERS']['SharedLibrary'] = LibtoolBuilder ++env_etc.set_libtool = set_libtool ++ ++def unset_libtool(env): ++ env['BUILDERS']['SharedLibrary'] = env_etc.SharedLibBuilder_save ++ env.Replace( ++ SHOBJSUFFIX=env_etc.shobjsuffix_save, ++ ) ++env_etc.unset_libtool = unset_libtool ++ ++if (libtbx.env.build_options.libtoolize): ++ env_etc.shlibsuffix = ".la" ++ env_base.Append(LIBSUFFIXES=[env_etc.shlibsuffix]) ++ rpath_link = ['-rpath', env_etc.rpath] ++ env_etc.shlinkflags.extend(rpath_link) ++ if '-shared' in env_etc.shlinkflags: ++ env_etc.shlinkflags.remove('-shared') ++ env_etc.set_libtool(env_base) + + def create_install_targets(): + cwd = os.getcwd() + rp = libtbx.env.repository_paths +- lib_dir = '%s%s'%(abs(libtbx.env.lib_path), env_etc.rpath) ++ lib_dir = abs(libtbx.env.lib_path) + exe_dev = libtbx.env.under_build("exe_dev") + include_path = libtbx.env.include_path +- if not os.path.exists(lib_dir): +- os.makedirs(lib_dir) + rp = list(rp) + rp.append(lib_dir) + rp.append(include_path) +@@ -1082,17 +1165,31 @@ def create_install_targets(): + os.chdir(src_dir) + dest = None + for root, dirnames, filenames in os.walk('.'): ++ # exclude .libs dir ++ if '.libs' in dirnames: ++ dirnames.remove('.libs') + for filename in filenames: +- if re.match('^lib.*\.(so.*|dylib.*|la|a)$', filename, flags=re.IGNORECASE): +- dest = os.path.join(env_etc.libpath, root) +- src = os.path.join(src_dir, root, filename) +- env_base.Install(dest, src) +- env_base.Alias("install-shlib", dest) ++ if not (libtbx.env.build_options.libtoolize): ++ if re.match('^lib.*\.(so|dylib|a)$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-shlib", dest) ++ else: ++ if re.match('^lib.*\.la$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.libpath, root, filename) ++ src = os.path.join(src_dir, root, filename) ++ env_base.LibtoolInstall(dest, src) ++ env_base.Alias("install-shlib", dest) + if re.match('^.*\.(h|hpp)$', filename, flags=re.IGNORECASE): + dest = os.path.join(env_etc.inclpath, root) + src = os.path.join(src_dir, root, filename) + env_base.Install(dest, src) + env_base.Alias("install-header", dest) ++ if src_dir == lib_dir: ++ break ++ ++ env_base.Alias("install-shlib", dest) + dest = env_etc.binpath + env_base.Install(dest, Glob('%s/*'%(exe_dev))) + env_base.Alias("install-bin", dest) +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 0885527..3d9133e 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -705,6 +705,7 @@ Wait for the command to finish, then try again.""" % vars()) + install_prefix=command_line.options.install_prefix, + libdir=command_line.options.libdir, + install_destdir=command_line.options.install_destdir, ++ libtoolize=command_line.options.libtoolize, + scan_boost=command_line.options.scan_boost, + write_full_flex_fwd_h=command_line.options.write_full_flex_fwd_h, + boost_python_no_py_signatures +@@ -1767,6 +1768,7 @@ class build_options: + install_prefix, + libdir, + install_destdir, ++ libtoolize, + scan_boost, + write_full_flex_fwd_h=default_write_full_flex_fwd_h, + build_boost_python_extensions=default_build_boost_python_extensions, +@@ -1830,6 +1832,7 @@ class build_options: + print >> f, "Boost threads enabled:", self.enable_boost_threads + print >> f, "Enable OpenMP if possible:", self.enable_openmp_if_possible + print >> f, "Enable CUDA:", self.enable_cuda ++ print >> f, "Libtoolize:", self.libtoolize + print >> f, "Use System Libraries:", self.use_system_libs + print >> f, "Install Prefix:", self.install_prefix + print >> f, "Libdir:", self.libdir +@@ -1974,6 +1977,10 @@ class pre_process_args: + default="/usr/local", + help="sets the prefix for the install targets. Default: /usr/local", + metavar="DIRECTORY") ++ parser.option(None, "--libtoolize", ++ action="store_true", ++ default=False, ++ help="build all shared libraries with libtool.") + parser.option(None, "--scan_boost", + action="store_true", + default=False, diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0008-Fix-to-skip-pycbf-build.patch b/sci-libs/cctbx/files/2013.02.27.0005/0008-Fix-to-skip-pycbf-build.patch new file mode 100644 index 0000000..7aa3a39 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0008-Fix-to-skip-pycbf-build.patch @@ -0,0 +1,52 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:08:30 +0200 +Subject: Fix to skip pycbf build + +--- + cctbx_sources/cbflib_adaptbx/SConscript | 8 ++++---- + cctbx_sources/cbflib_adaptbx/libtbx_refresh.py | 16 ++++++++-------- + 2 files changed, 12 insertions(+), 12 deletions(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/SConscript b/cctbx_sources/cbflib_adaptbx/SConscript +index 334cfc2..42ab9c3 100644 +--- a/cctbx_sources/cbflib_adaptbx/SConscript ++++ b/cctbx_sources/cbflib_adaptbx/SConscript +@@ -90,10 +90,10 @@ if (not env_etc.no_boost_python): + env=env_cbflib_boost_python_ext, + paths=env_etc.cbflib_common_includes + [env_etc.python_include]) + +- env_cbflib_boost_python_ext.SharedLibrary( +- target='#lib/_pycbf', +- source=[prefix+"/pycbf/pycbf_wrap.c"], +- LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) ++ #env_cbflib_boost_python_ext.SharedLibrary( ++ # target='#lib/_pycbf', ++ # source=[prefix+"/pycbf/pycbf_wrap.c"], ++ # LIBS=env_etc.cbf_lib+env_etc.libs_python+env_etc.libm) + + Export("env_cbflib_boost_python_ext") + +diff --git a/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py b/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py +index 51b3e42..dd1b8e9 100644 +--- a/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py ++++ b/cctbx_sources/cbflib_adaptbx/libtbx_refresh.py +@@ -1,11 +1,11 @@ + from libtbx.str_utils import show_string + import os + op = os.path +-pycbf_py = self.env.under_dist(module_name="cbflib", path="pycbf/pycbf.py") +-if (not op.isfile(pycbf_py)): +- raise RuntimeError("Missing file: %s" % show_string(pycbf_py)) +-target_dir = self.env.under_build(path="lib") +-if (not op.isdir(target_dir)): +- os.makedirs(target_dir) +-print " Copying to lib: %s" % show_string(pycbf_py) +-open(op.join(target_dir, "pycbf.py"), "w").write(open(pycbf_py).read()) ++#pycbf_py = self.env.under_dist(module_name="cbflib", path="pycbf/pycbf.py") ++#if (not op.isfile(pycbf_py)): ++# raise RuntimeError("Missing file: %s" % show_string(pycbf_py)) ++#target_dir = self.env.under_build(path="lib") ++#if (not op.isdir(target_dir)): ++# os.makedirs(target_dir) ++#print " Copying to lib: %s" % show_string(pycbf_py) ++#open(op.join(target_dir, "pycbf.py"), "w").write(open(pycbf_py).read()) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0009-build-libann-statically.patch b/sci-libs/cctbx/files/2013.02.27.0005/0009-build-libann-statically.patch new file mode 100644 index 0000000..77ba2b2 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0009-build-libann-statically.patch @@ -0,0 +1,27 @@ +From: Radostan Riedel +Date: Thu, 19 Jul 2012 11:29:57 +0200 +Subject: build libann statically + +--- + cctbx_sources/annlib_adaptbx/SConscript | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/cctbx_sources/annlib_adaptbx/SConscript b/cctbx_sources/annlib_adaptbx/SConscript +index 31b4da6..f217b3f 100644 +--- a/cctbx_sources/annlib_adaptbx/SConscript ++++ b/cctbx_sources/annlib_adaptbx/SConscript +@@ -29,9 +29,11 @@ if (libtbx.manual_date_stamp < 20090819): + env.Replace(CXXFLAGS=env_etc.cxxflags_base) + env.Replace(SHCXXFLAGS=env_etc.cxxflags_base) + +-if (env_etc.static_libraries): builder = env.StaticLibrary +-else: builder = env.SharedLibrary +-builder(target='#lib/ann', ++#if (env_etc.static_libraries): builder = env.StaticLibrary ++#else: builder = env.SharedLibrary ++# Create a static library since the changes are incompatiple ++# with debian's libann ++env.StaticLibrary(target='#lib/ann', + source = ["../annlib/src/ANN.cpp", + "../annlib/src/bd_fix_rad_search.cpp", + "../annlib/src/bd_pr_search.cpp", diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0010-adding-setup_py.patch b/sci-libs/cctbx/files/2013.02.27.0005/0010-adding-setup_py.patch new file mode 100644 index 0000000..7599d82 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0010-adding-setup_py.patch @@ -0,0 +1,662 @@ +From: Baptiste Carvello +Date: Tue, 21 Aug 2012 16:10:19 +0200 +Subject: adding-setup_py + +--- + cctbx_sources/stdlib.py | 4 + + sconsutils.py | 485 +++++++++++++++++++++++++++++++++++++++++++++++ + setup.py | 136 +++++++++++++ + 3 files changed, 625 insertions(+) + create mode 100755 cctbx_sources/stdlib.py + create mode 100644 sconsutils.py + create mode 100755 setup.py + +diff --git a/cctbx_sources/stdlib.py b/cctbx_sources/stdlib.py +new file mode 100755 +index 0000000..759f689 +--- /dev/null ++++ b/cctbx_sources/stdlib.py +@@ -0,0 +1,4 @@ ++from libtbx.forward_compatibility import stdlib_import ++ ++math = stdlib_import("math") ++random = stdlib_import("random") +diff --git a/sconsutils.py b/sconsutils.py +new file mode 100644 +index 0000000..322585b +--- /dev/null ++++ b/sconsutils.py +@@ -0,0 +1,485 @@ ++from distutils.sysconfig import get_python_lib, get_config_var ++from distutils.command.build_ext import build_ext as _build_ext ++from distutils.command.build_py import build_py as _build_py ++from distutils.command.install_lib import install_lib as _install_lib ++from distutils.command.install_data import install_data as _install_data ++from distutils.command.clean import clean as _clean ++from distutils.cmd import Command as _Command ++from distutils.dir_util import remove_tree ++from distutils.util import change_root, convert_path ++from distutils.errors import DistutilsExecError ++from distutils import log ++import sys, os ++import SCons.Script ++import libtbx ++import libtbx.env_config ++from libtbx.path import relocatable_path, absolute_path ++from libtbx.path import relpath # don't use relpath from os.path, introduced in 2.6 ++from libtbx.utils import import_python_object ++import threading ++import pickle ++ ++opj = os.path.join ++configure_list = [] ++scons_buildargv = [] ++scons_installargv = [] ++SRCDIR='' ++ ++class Command(_Command): ++ def run_scons(self, argv): ++ cwd = os.getcwd() ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') # build_temp must be set by subclass ++ if not os.path.exists(builddir): ++ if not os.path.exists(os.path.abspath(self.build_temp)): ++ os.mkdir(os.path.abspath(self.build_temp)) ++ os.mkdir(builddir) ++ elif not os.path.isdir(builddir): ++ raise RuntimeError(("Build directory '%s' cannot be created " ++ "because of existing file") % builddir) ++ os.chdir(builddir) ++ if '%PREFIX%' in configure_list: ++ idx=configure_list.index('%PREFIX%') ++ configure_list[idx] = self.prefix # prefix must be set by subclass ++ libtbx.env_config.cold_start(configure_list) ++ os.environ["LIBTBX_BUILD"] = builddir ++ os.environ['PYTHONPATH'] = ':'.join(sys.path) ++ self.spawn(argv) ++ os.chdir(cwd) ++ ++class build_ext(_build_ext, Command): ++ user_options = _build_ext.user_options + [ ++ ('prefix=', None, "installation prefix (default: python installation prefix") ++ ] ++ def initialize_options(self): ++ _build_ext.initialize_options(self) ++ self.prefix = None ++ def finalize_options(self): ++ _build_ext.finalize_options(self) ++ if not self.prefix: ++ self.prefix = get_config_var('prefix') # on Debian: 'usr' ++ def run(self): ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') # build_temp set by _build_ext ++ self.run_scons(scons_buildargv) ++ for ext in self.extensions: ++ if len(ext.sources) != 1 or ext.sources[0] != '%SCONSLIB%': ++ log.warn("Don't know how to build extension '%s' -- skipping", ++ ext.name) ++ continue ++ dst = self.get_ext_fullpath(ext.name) ++ bld = opj(builddir, 'lib', os.path.basename(dst)) ++ if os.path.isfile(bld): ++ self.copy_file(bld, dst) ++ ++class build_py(_build_py): ++ def build_module (self, module, module_file, package): ++ if type(package) is str: ++ package = package.split('.') ++ elif type(package) not in (list, tuple): ++ raise TypeError, \ ++ "'package' must be a string (dot-separated), list, or tuple" ++ ++ # Now put the module source file into the "build" area -- this is ++ # easy, we just copy it somewhere under self.build_lib (the build ++ # directory for Python source). ++ outfile = self.get_module_outfile(self.build_lib, package, module) ++ dir = os.path.dirname(outfile) ++ self.mkpath(dir) ++ # If the module contains non-blank, non-comment/docstring lines, and doesn't have ++ # the __future__ import, add it before the first non-comment/docstring line ++ empty = True ++ found = False ++ docstring = None ++ file_obj = open(module_file) ++ for line in file_obj: ++ if docstring: ++ if (line.count(docstring) % 2) == 1: ++ # FIXME this logic will fail with lines such as """ + ''', ++ # but nobody with a sane mind would do that, would they ? ++ docstring = None ++ continue ++ if line == "from __future__ import division\n": ++ found = True ++ break ++ if line.isspace() or line.startswith('#'): ++ continue ++ if line.startswith('"""') and (line.count('"""') % 2) == 1: ++ docstring = '"""' ++ continue ++ if line.startswith('"'): ++ continue ++ if line.startswith("'''") and (line.count("'''") % 2) == 1: ++ docstring = "'''" ++ continue ++ if line.startswith("'"): ++ continue ++ empty = False ++ break ++ file_obj.close() ++ if empty or found: ++ return self.copy_file(module_file, outfile, preserve_mode=0) ++ elif self.dry_run: ++ if os.path.isdir(outfile): ++ outfile = opj(outfile, os.path.basename(module_file)) ++ log.info("copying with modification %s -> %s", module_file, outfile) ++ return outfile, True ++ else: ++ if os.path.isdir(outfile): ++ outfile = opj(outfile, os.path.basename(module_file)) ++ log.info("copying with modification %s -> %s", module_file, outfile) ++ file_obj = open(module_file) ++ outfile_obj = open(outfile, 'w') ++ written = False ++ docstring = None ++ for line in file_obj: ++ if not written: ++ if docstring: ++ if (line.count(docstring) % 2) == 1: ++ docstring = None ++ outfile_obj.write(line) ++ continue ++ if line.isspace() or line.startswith('#'): ++ outfile_obj.write(line) ++ continue ++ if line.startswith('"""') and (line.count('"""') % 2) == 1: ++ docstring = '"""' ++ outfile_obj.write(line) ++ continue ++ if line.startswith('"'): ++ outfile_obj.write(line) ++ continue ++ if line.startswith("'''") and (line.count("'''") % 2) == 1: ++ docstring = "'''" ++ outfile_obj.write(line) ++ continue ++ if line.startswith("'"): ++ outfile_obj.write(line) ++ continue ++ outfile_obj.write("from __future__ import division\n") ++ written = True ++ outfile_obj.write(line) ++ outfile_obj.close() ++ file_obj.close() ++ return outfile, True ++ ++class test(_Command): ++ description = "runs the tests in the distutils build directory" ++ user_options = [ ++ ('build-lib=', None, ++ "distutils build directory (default: 'build.build-lib')"), ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')") ++ ] ++ def initialize_options(self): ++ self.build_lib = None ++ self.build_temp = None ++ def finalize_options(self): ++ self.set_undefined_options('build', ++ ('build_lib', 'build_lib'), ++ ('build_temp', 'build_temp')) ++ def run(self): ++ libdir = os.path.abspath(os.path.abspath(self.build_lib)) ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ testdir = opj(os.path.abspath(self.build_temp), 'cctbx-test') ++ self.setup_test_env(builddir, libdir, testdir) ++ os.environ["LIBTBX_BUILD"] = testdir ++ env = libtbx.env_config.unpickle() ++ os.environ['PYTHONPATH'] = ':'.join([libdir] + sys.path[5:]) ++ llp = os.environ.get('LD_LIBRARY_PATH') ++ if llp is not None: ++ os.environ['LD_LIBRARY_PATH'] = ':'.join([opj(builddir, 'lib', '.libs'), llp]) ++ else: ++ os.environ['LD_LIBRARY_PATH'] = opj(builddir, 'lib', '.libs') ++ os.chdir(testdir) ++ failed = [] ++ for m in env.module_list: ++ for (module_name,dist_path) in m.name_and_dist_path_pairs(): ++ try: ++# tst_list = import_python_object( ++# import_path="%s.run_tests.tst_list" % module_name, Does not work yet ++# error_prefix="", ++# target_must_be="", ++# where_str="").object ++ run_func = import_python_object( ++ import_path="%s.run_tests.run" % module_name, ++ error_prefix="", ++ target_must_be="", ++ where_str="").object ++ tst_mod = file(opj(abs(dist_path), "run_tests.py")) # Ugly, temporary ++ tst_lines = [l.strip() for l in tst_mod] ++ tst_mod.close() ++ tst_code = " ".join(["("] + ++ tst_lines[(tst_lines.index("tst_list = (")+1) ++ :(tst_lines.index(")")+1)] ++ ) ++ tst_list = eval(tst_code) ++ ++ except Exception: ++ continue ++ for tst in tst_list: # adapted from libtbx.test_utils.iter_tests_cmd ++ cmd_args = [] ++ if (type(tst) == type([])): ++# cmd_args = tst[1:] FIXME why only in quick mode? ++ tst = tst[0] ++ if (tst.startswith("$B")): ++ tst_path = tst.replace("$B", builddir) ++ else: ++ tst_path = tst.replace("$D", abs(dist_path)) ++ if "$" in tst_path or '"' in tst_path: ++ log.warn("Could not run test '%s':\n%s", tst, "Unexpected '$' in test path") ++ failed.append([module_name,tst,AssertionError("Unexpected '$' in test path")]) ++ continue ++ if '"' in tst_path: ++ log.warn("Could not run test '%s':\n%s", tst, "Unexpected '\"' in test path") ++ failed.append([module_name,tst,AssertionError("Unexpected '\"' in test path")]) ++ continue ++ tst_path = os.path.normpath(tst_path) ++ if (tst_path.endswith(".py")): ++ cmd = [sys.executable, tst_path] + cmd_args ++ else: ++ cmd = [tst_path] + cmd_args ++ try: ++ self.spawn(cmd) ++ except DistutilsExecError, e: ++ log.warn("Failure in test '%s':\n%s", tst, str(e)) ++ failed.append([module_name,tst,e]) ++ except Exception, e: ++ log.warn("Exception in test '%s':\n%s", tst, str(e)) ++ failed.append([module_name,tst,e]) ++ if failed: ++ log.warn("Some tests failed:") ++ for n,t,e in failed: ++ log.warn(" module %s, test %s" % (n,t)) ++ raise RuntimeError("Test failures") ++ ++ def setup_test_env(self, builddir, libdir, testdir): ++ """ Create the test directory and the temporary libtbx_env pickle object """ ++ if not os.path.exists(testdir): ++ if not os.path.exists(os.path.abspath(self.build_temp)): ++ os.mkdir(os.path.abspath(self.build_temp)) ++ os.mkdir(testdir) ++ elif not os.path.isdir(testdir): ++ raise RuntimeError(("Test directory '%s' cannot be created " ++ "because of existing file") % testdir) ++ os.environ["LIBTBX_BUILD"] = builddir ++ env = libtbx.env_config.unpickle() ++ module_dist_paths = {} ++ for key, value in env.module_dist_paths.items(): ++ head, module = os.path.split(abs(value)) ++ module_dist_paths[key] = relocatable_path(absolute_path(libdir), module) ++ env.module_dist_paths = module_dist_paths ++ for module in env.module_list: ++ paths = [] ++ for path in module.dist_paths: ++ if path != None: ++ head, tail = os.path.split(abs(path)) ++ rp = relocatable_path(absolute_path(libdir), tail) ++ paths.append(rp) ++ else: ++ paths.append(None) ++ module.dist_paths = paths ++ file_obj = open(opj(testdir,'libtbx_env'), 'wb') ++ pickle.dump(env, file_obj, 0) ++ file_obj.close() ++ ++class install_lib(_install_lib, Command): ++ user_options = _install_lib.user_options + [ ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')"), ++ ('prefix=', None, "installation prefix (default: 'install.prefix')"), ++ ('root=', None, ++ "install everything relative to this alternate root directory (default: 'install.root')") ++ ] ++ def initialize_options(self): ++ _install_lib.initialize_options(self) ++ self.build_temp = None ++ self.prefix = None ++ self.root = None ++ def finalize_options(self): ++ _install_lib.finalize_options(self) ++ self.set_undefined_options('build', ++ ('build_temp', 'build_temp')) ++ self.set_undefined_options('install', ++ ('prefix', 'prefix'), ++ ('root', 'root')) ++ def run(self): ++ _install_lib.run(self) ++ if self.root != None: ++ ip = '--install_destdir' ++ if ip not in configure_list: ++ configure_list.extend([ip, self.root]) ++ self.run_scons(scons_installargv) ++ ++class install_data(_install_data, Command): ++ user_options = _install_data.user_options + [ ++ ('build-temp=', 't', ++ "directory for temporary files (default: 'build.build-temp')"), ++ ('prefix=', None, "installation prefix (default: 'install.prefix')") ++ ] ++ def initialize_options(self): ++ _install_data.initialize_options(self) ++ self.build_temp = None ++ self.prefix = None ++ def finalize_options(self): ++ _install_data.finalize_options(self) ++ self.set_undefined_options('build', ++ ('build_temp', 'build_temp')) ++ self.set_undefined_options('install', ++ ('prefix', 'prefix')) ++ def run(self): ++ # filter the list ++ newdf = [] ++ libtbx_env_path = None ++ for f in self.data_files: ++ if type(f) is str: ++ newdf.append(f) ++ continue ++ if '%LIBTBXENV%' in f[1]: ++ f = (f[0], [p for p in f[1] if p != '%LIBTBXENV%']) ++ libtbx_env_path = opj(convert_path(f[0]), 'libtbx_env') ++ if not os.path.isabs(libtbx_env_path): # mimic the logic in install_data ++ libtbx_env_path = opj(self.install_dir, libtbx_env_path) ++ elif self.root: ++ libtbx_env_path = change_root(self.root, libtbx_env_path) ++ # we leave the directory in, so that distutils will create it ++ newdf.append(f) ++ self.data_files = newdf ++ _install_data.run(self) ++ if libtbx_env_path is not None: ++ self.install_libtbx_env(libtbx_env_path) ++ self.outfiles.append(libtbx_env_path) ++ ++ def install_libtbx_env(self, libtbx_env_path): ++ """ Modify libtbx_env pickle object to set the correct paths. """ ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ os.environ["LIBTBX_BUILD"] = builddir ++ env = libtbx.env_config.unpickle() ++ env.build_path = absolute_path(self.prefix) ++ build_path = env.build_path ++ python_lib = get_python_lib() ++ rel_path = opj(python_lib, 'cctbx') ++ env.bin_path = relocatable_path(build_path, 'bin') ++ env.lib_path = relocatable_path(build_path, 'lib') ++ env.include_path = relocatable_path(build_path, 'include') ++ env.repository_paths = relocatable_path(build_path, rel_path) ++ env.scons_dist_path = None ++ env.pythonpath = None ++ env.exe_path = env.bin_path ++ env.python_exe = relocatable_path(build_path, sys.executable) ++ env.path_utility = relocatable_path(build_path, ++ opj(rel_path, 'libtbx', 'command_line', 'path_utility.py')) ++ module_dist_paths = {} ++ for key, value in env.module_dist_paths.items(): ++ head, module = os.path.split(abs(value)) ++ module_dist_paths[key] = relocatable_path(build_path, ++ opj(rel_path, module)) ++ env.module_dist_paths = module_dist_paths ++ for module in env.module_list: ++ paths = [] ++ for path in module.dist_paths: ++ if path != None: ++ head, tail = os.path.split(abs(path)) ++ rp = relocatable_path(build_path, opj(rel_path, tail)) ++ paths.append(rp) ++ else: ++ paths.append(None) ++ module.dist_paths = paths ++ _dispatcher_registry={} ++ for key, value in env._dispatcher_registry.items(): ++ new_key = relocatable_path(anchor=build_path, ++ relocatable=key.relocatable) ++ rel = relpath(abs(value), SRCDIR) ++ new_val = relocatable_path(anchor=absolute_path(rel_path), ++ relocatable=rel) ++ _dispatcher_registry[new_key] = new_val ++ env._dispatcher_registry = _dispatcher_registry ++ # install the environment file in the data dir ++ file_obj = open(libtbx_env_path, 'wb') ++ pickle.dump(env, file_obj, 0) ++ file_obj.close() ++ ++class clean(_clean): ++ def run(self): ++ # remove the scons build dir ++ builddir = opj(os.path.abspath(self.build_temp), 'cctbx-build') ++ if os.path.exists(builddir): ++ remove_tree(builddir, dry_run=self.dry_run) ++ else: ++ log.debug("'%s' does not exist -- can't clean it", ++ builddir) ++ # remove the scons test dir ++ testdir = opj(os.path.abspath(self.build_temp), 'cctbx-test') ++ if os.path.exists(testdir): ++ remove_tree(testdir, dry_run=self.dry_run) ++ else: ++ log.debug("'%s' does not exist -- can't clean it", ++ testdir) ++ # call the base class to remove the distutils dirs ++ _clean.run(self) ++ ++# adapted from setuptools ++# authors: Phillip J. Eby, Tarek Ziade and the distutils SIG ++# licence: PSF or ZPL ++ ++from distutils.util import convert_path ++import re ++ ++EXTPAT1 = re.compile(r"^from (\S+_ext) import") ++EXTPAT2 = re.compile(r"^import (\S+_ext)$") ++EXTPAT3 = re.compile(r"boost.python.import_ext\(['\"](\S+_ext)['\"]\)$") ++EXTPAT4 = re.compile(r"import_ext\(['\"](\S+_ext)['\"]\)$") # in module boost.python! ++ ++def find_packages_and_extensions(where='.', exclude=()): ++ """Return a list all Python packages found within directory 'where' ++ and a list all extensions that need to be installed inside those packages ++ ++ 'where' should be supplied as a "cross-platform" (i.e. URL-style) path; it ++ will be converted to the appropriate local path syntax. 'exclude' is a ++ sequence of package names to exclude; '*' can be used as a wildcard in the ++ names, such that 'foo.*' will exclude all subpackages of 'foo' (but not ++ 'foo' itself). ++ """ ++ out = [] ++ outext = set() ++ stack=[(convert_path(where), '')] ++ ++ while stack: ++ ++ where,prefix = stack.pop(0) ++ for name in os.listdir(where): ++ ++ fn = opj(where,name) ++ if ('.' not in name and os.path.isdir(fn) and ++ os.path.isfile(opj(fn,'__init__.py')) ++ ): ++ ++ out.append(prefix+name); stack.append((fn,prefix+name+'.')) ++ ++ if name.endswith('.py'): ++ ++ f = open(opj(where, name)) ++ for l in f: ++ ++ m = EXTPAT1.match(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ m = EXTPAT2.match(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ m = EXTPAT3.search(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ if name == 'python.py' and prefix.endswith('boost.'): ++ m = EXTPAT4.search(l) ++ if m is not None: ++ outext.add(m.group(1)) ++ ++ f.close() ++ ++ for pat in list(exclude)+['ez_setup', 'distribute_setup']: ++ from fnmatch import fnmatchcase ++ out = [item for item in out if not fnmatchcase(item,pat)] ++ ++ return out, list(outext) +diff --git a/setup.py b/setup.py +new file mode 100755 +index 0000000..033dc9e +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,142 @@ ++from distutils.core import setup, Extension ++import sys, os, shutil ++ ++# General settings ++opj = os.path.join ++CURDIR = os.getcwd() ++SRCDIR = opj(CURDIR, 'cctbx_sources') ++py_vers = sys.version_info ++py_major = py_vers[0] ++py_minor = py_vers[1] ++py_str = 'python%s.%s'%(py_major, py_minor) ++clipper = opj('clipper_adaptbx','clipper') ++boost = opj('boost_adaptbx','boost') ++libtbx_pypath = opj('libtbx','pythonpath') ++scons_exe = '/usr/bin/scons' # FIXME platform dependent path ++scons_path = '/usr/lib/scons/' ++PATHLIST= [ SRCDIR, ++ opj(SRCDIR, libtbx_pypath), ++ opj(SRCDIR, clipper), ++ opj(SRCDIR, boost), ++ scons_path, ++ ] ++for p in PATHLIST: ++ if p not in sys.path: ++ # we need to insert at the front, in case cctbx is already installed ++ sys.path.insert(0,p) ++ ++import sconsutils ++from sconsutils import find_packages_and_extensions, build_ext, build_py, test, install_lib, install_data, clean ++ ++sconsutils.SRCDIR = SRCDIR ++ ++# Debian Multiarch magic ++multiarch = os.environ.get('DEB_HOST_MULTIARCH') ++libdir = os.environ.get('MULTILIBDIR') ++if multiarch == None: ++ multiarch = '' ++else: ++ libdir = 'lib/' + multiarch ++ ++if libdir == None: ++ libdir = 'lib' ++# Configure settings ++# We need this directory to get env_config.cold_start to run! ++# trailing slash is important ++init_dir = opj(SRCDIR, 'libtbx')+os.sep # the separator is needed for dirname to do the right thing ++build_opts = [ '--libtoolize', ++ '--use_system_libs', ++ '--use-environment-flags', ++ '--libdir', libdir, ++ '--install_prefix', '%PREFIX%', # prefix will be replaced at run time ++ ] ++conf_modules = [ 'annlib_adaptbx', ++ 'boost_adaptbx', ++ 'cbflib_adaptbx', ++ 'ccp4io_adaptbx', ++ 'cctbx', ++ 'chiltbx', ++ 'clipper_adaptbx', ++ 'crys3d', ++ 'fable', ++ 'fftw3tbx', ++ 'gltbx', ++ 'iotbx', ++ 'libtbx', ++ 'mmtbx', ++ 'omptbx', ++ 'rstbx', ++ 'scitbx', ++ 'smtbx', ++ 'spotfinder', ++ 'tbxx', ++ 'tntbx', ++ 'ucif', ++ 'wxtbx', ++ ] ++sconsutils.configure_list = [init_dir] ++sconsutils.configure_list.extend(build_opts) ++sconsutils.configure_list.extend(conf_modules) ++ ++# Build settings ++sconsutils.scons_buildargv = [sys.executable, scons_exe] ++ ++# Install settings ++sconsutils.scons_installargv = [sys.executable, scons_exe, 'install'] ++ ++# Setup settings ++ ++NAME = 'cctbx' ++VERSION = '2012.05.08.2305' ++DESCRIPTION = 'cctbx' ++AUTHOR = 'cctbx' ++AUTHOR_EMAIL = 'cctbx@cci.lbl.gov' ++URL = 'http://cctbx.sourceforge.net/' ++LICENSE = 'CCTBX 2.0' ++KEYWORDS = 'crystallography' ++SCRIPTS = [] ++PKG_DATA = {} ++EXTRA_PATH = 'cctbx' ++ ++MODS = ['stdlib'] ++ ++PACKDIR = { 'boost' : 'cctbx_sources/boost_adaptbx/boost', # in setup, paths must stay in unix syntax ++ 'clipper' : 'cctbx_sources/clipper_adaptbx/clipper', # also, let's keep them relative ++ 'optik' : 'cctbx_sources/libtbx/pythonpath/optik', # FIXME installs incompatible fork to global path ++ 'tntbx' : 'cctbx_sources/tntbx/tntbx', ++ '' : 'cctbx_sources', ++ } ++ ++PACKS = [] ++EXT_MODULES = [] ++for key, value in PACKDIR.items(): ++ p, e = find_packages_and_extensions(value) ++ PACKS.extend(p) ++ EXT_MODULES.extend(e) ++ if key != '': ++ PACKS.append(key) ++ ++EXT_MODULES = [ Extension(e, ['%SCONSLIB%']) for e in EXT_MODULES ] # special treatment from install_lib ++ ++setup(name=NAME, ++ version = VERSION, ++ author = AUTHOR, ++ author_email = AUTHOR_EMAIL, ++ url = URL, ++ description = DESCRIPTION, ++ license = LICENSE, ++ keywords = KEYWORDS, ++ extra_path = EXTRA_PATH, ++ scripts = SCRIPTS, ++ py_modules = MODS, ++ package_dir = PACKDIR, ++ packages = PACKS, ++ ext_modules = EXT_MODULES, ++ data_files = [('share/cctbx/%s'%(py_str), ['%LIBTBXENV%'])], # special treatment from install_data ++ cmdclass = {'build_ext': build_ext, ++ 'build_py': build_py, ++ 'test': test, ++ 'install_lib': install_lib, ++ 'install_data': install_data, ++ 'clean': clean}, ++ ) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0011-fix-missing-python-lib-during-linking.patch b/sci-libs/cctbx/files/2013.02.27.0005/0011-fix-missing-python-lib-during-linking.patch new file mode 100644 index 0000000..6724c0c --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0011-fix-missing-python-lib-during-linking.patch @@ -0,0 +1,47 @@ +From: Radostan Riedel +Date: Thu, 19 Jul 2012 23:26:30 +0200 +Subject: fix missing python lib during linking + +--- + cctbx_sources/libtbx/SConscript | 4 ++-- + cctbx_sources/scitbx/boost_python/SConscript | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 58bdd30..53e1512 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -54,9 +54,11 @@ def set_python_include_and_libs(env_etc): + env_etc.python_include = libtbx.env_config.python_include_path() + if (sys.platform == "win32"): + env_etc.libs_python = ["python" + sys.version[0] + sys.version[2]] ++ env_etc.py_lib = 'python%s%s'%(sys.version[0], sys.version[2]) + env_etc.libpath_python = [sys.prefix + r"\libs"] + else: + env_etc.libs_python = [] ++ env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) + env_etc.libpath_python = [] + if (env_etc.compiler.startswith("darwin_")): + env_etc.python_framework = "/".join( +@@ -1034,8 +1036,6 @@ def check_syslib(lib, extra_libs=None): + return True + env_etc.check_syslib = check_syslib + +-env_etc.py_lib = 'python%s.%s'%(sys.version[0], sys.version[2]) +- + if (libtbx.env.build_options.use_system_libs): + env_etc.use_system_libs = True + +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index 1f396e5..b906eb3 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -7,7 +7,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(CXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(SHCXXFLAGS=env_etc.cxxflags_bpl_defines_base) + env.Append(LIBPATH=env_etc.libpath_python) +-env.Append(LIBS=[env_etc.boost_python] + env_etc.libs_python) ++env.Append(LIBS=[env_etc.boost_python] + [env_etc.py_lib,] + env_etc.libs_python) + env_etc.include_registry.append( + env=env, + paths=env_etc.scitbx_common_includes + [env_etc.python_include]) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0012-fix-to-remove-cctbx.python-interpreter.patch b/sci-libs/cctbx/files/2013.02.27.0005/0012-fix-to-remove-cctbx.python-interpreter.patch new file mode 100644 index 0000000..6fad24f --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0012-fix-to-remove-cctbx.python-interpreter.patch @@ -0,0 +1,20 @@ +From: Radostan Riedel +Date: Mon, 23 Jul 2012 23:58:46 +0200 +Subject: fix to remove cctbx.python interpreter + +--- + cctbx_sources/rstbx/bpcx/uc1_2.py | 2 +- + cctbx_sources/rstbx/bpcx/uc1_2_reeke.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/rstbx/bpcx/uc1_2.py b/cctbx_sources/rstbx/bpcx/uc1_2.py +index 95ee9cd..1abf8e1 100644 +--- a/cctbx_sources/rstbx/bpcx/uc1_2.py ++++ b/cctbx_sources/rstbx/bpcx/uc1_2.py +@@ -1,5 +1,5 @@ + from __future__ import division +-#!/usr/bin/env cctbx.python ++#!/usr/bin/env python + # + # Biostruct-X Data Reduction Use Case 1.2: + # diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch b/sci-libs/cctbx/files/2013.02.27.0005/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch new file mode 100644 index 0000000..8243d93 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0013-fix-to-support-LDFLAGS-in-use_enviroment_flags.patch @@ -0,0 +1,90 @@ +From: Radostan Riedel +Date: Tue, 24 Jul 2012 17:12:30 +0200 +Subject: fix to support LDFLAGS in use_enviroment_flags + +--- + cctbx_sources/libtbx/SConscript | 11 ++++++++++- + cctbx_sources/libtbx/env_config.py | 7 ++++++- + 2 files changed, 16 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 53e1512..7d51d4a 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -777,11 +777,15 @@ else: + # user options for any compiler from the environment variables + # at the time of configure + opts = libtbx.env.build_options ++ env_etc.ldflags_base = [] + if( opts.use_environment_flags ): + print "libtbx.scons: using flags from initial environment: " + print " CXXFLAGS = ", opts.env_cxxflags + print " CFLAGS = ", opts.env_cflags + print " CPPFLAGS = ", opts.env_cppflags ++ print " LDFLAGS = ", opts.env_ldflags ++ flg = opts.env_ldflags.split(" ") ++ env_etc.ldflags_base = flg + flg = opts.env_cxxflags.split(" ") + if( hasattr(env_etc, "cxxflags_base") ): + env_etc.cxxflags_base.extend(flg) +@@ -853,6 +857,9 @@ def env_base_sync_with_env_etc(): + SHCFLAGS=env_etc.cflags_base, + SHCCFLAGS=env_etc.ccflags_base, + SHCXXFLAGS=env_etc.cxxflags_base) ++ env_base.Prepend(LINKFLAGS=env_etc.ldflags_base) ++ env_etc.shlinkflags.extend(env_etc.ldflags_base) ++ env_etc.shlinkflags_bpl.extend(env_etc.ldflags_base) + env_base_sync_with_env_etc() + + if (static_exe): +@@ -1070,8 +1077,10 @@ def set_libtool(env): + # for reference. Otherwise it will be set to 0:0:0 + env_etc.shobjsuffix_save = env['SHOBJSUFFIX'] + env_etc.SharedLibBuilder_save = env['BUILDERS']['SharedLibrary'] ++ sh_flg = list(env_etc.ldflags_base) ++ sh_flg.extend(['-rpath', env_etc.rpath]) + env.Replace( +- SHLINKFLAGS='-rpath ' + env_etc.rpath, ++ SHLINKFLAGS=sh_flg, + SHOBJSUFFIX='.lo', + SHLIBSUFFIX='.la', + ) +diff --git a/cctbx_sources/libtbx/env_config.py b/cctbx_sources/libtbx/env_config.py +index 3d9133e..d8fb063 100644 +--- a/cctbx_sources/libtbx/env_config.py ++++ b/cctbx_sources/libtbx/env_config.py +@@ -1803,6 +1803,7 @@ class build_options: + self.env_cxxflags = "" + self.env_cflags = "" + self.env_cppflags = "" ++ self.env_ldflags = "" + flg = os.environ.get("CXXFLAGS") + if flg is not None: + self.env_cxxflags = flg +@@ -1812,6 +1813,9 @@ class build_options: + flg = os.environ.get("CPPFLAGS") + if flg is not None: + self.env_cppflags = flg ++ flg = os.environ.get("LDFLAGS") ++ if flg is not None: ++ self.env_ldflags = flg + + def report(self, f=None): + if (f is None): f = sys.stdout +@@ -1843,6 +1847,7 @@ class build_options: + print >>f, " CXXFLAGS = ", self.env_cxxflags + print >>f, " CFLAGS = ", self.env_cflags + print >>f, " CPPFLAGS = ", self.env_cppflags ++ print >>f, " LDFLAGS = ", self.env_ldflags + + class include_registry: + +@@ -2000,7 +2005,7 @@ class pre_process_args: + action="store_true", + default=False, + help="add compiler flags from environment variables: CXXFLAGS, CFLAGS," +- " CPPFLAGS") ++ " CPPFLAGS, LDFLAGS") + parser.option(None, "--force_32bit", + action="store_true", + default=False, diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch b/sci-libs/cctbx/files/2013.02.27.0005/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch new file mode 100644 index 0000000..c3e357e --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0014-Fix-to-append-CPPFLAGS-to-CXXFLAGS.patch @@ -0,0 +1,21 @@ +From: Radostan Riedel +Date: Wed, 25 Jul 2012 01:44:36 +0200 +Subject: Fix to append CPPFLAGS to CXXFLAGS. + +--- + cctbx_sources/libtbx/SConscript | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 7d51d4a..11a7810 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -798,6 +798,8 @@ else: + env_etc.ccflags_base = flg + flg = opts.env_cppflags.split(" ") + env_etc.ccflags_base.extend(flg) ++ # Need to append CPPFLAGS to cxxflags_base too! ++ env_etc.cxxflags_base.extend(flg) + + """ ************************ Custom Builders and Emitters ********************************* """ + diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0016-autogenerate-pkgconfig-files.patch b/sci-libs/cctbx/files/2013.02.27.0005/0016-autogenerate-pkgconfig-files.patch new file mode 100644 index 0000000..e3ba655 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0016-autogenerate-pkgconfig-files.patch @@ -0,0 +1,305 @@ +From: Radostan Riedel +Date: Mon, 6 Aug 2012 13:50:30 +0200 +Subject: autogenerate pkgconfig files + +--- + cctbx_sources/cctbx/SConscript | 7 ++-- + .../cctbx/sgtbx/direct_space_asu/proto/SConscript | 5 ++- + cctbx_sources/iotbx/mtz/SConscript | 6 +++- + cctbx_sources/iotbx/pdb/SConscript | 5 ++- + cctbx_sources/libtbx/SConscript | 37 +++++++++++++++++++- + cctbx_sources/mmtbx/masks/SConscript | 5 ++- + cctbx_sources/omptbx/SConscript | 5 ++- + cctbx_sources/rstbx/SConscript | 5 ++- + cctbx_sources/scitbx/boost_python/SConscript | 5 ++- + cctbx_sources/scitbx/minpack/SConscript | 5 ++- + cctbx_sources/scitbx/slatec/SConscript | 5 ++- + .../smtbx/refinement/constraints/SConscript | 5 ++- + cctbx_sources/spotfinder/SConscript | 5 ++- + 13 files changed, 86 insertions(+), 14 deletions(-) + +diff --git a/cctbx_sources/cctbx/SConscript b/cctbx_sources/cctbx/SConscript +index 6ce770c..378cb36 100644 +--- a/cctbx_sources/cctbx/SConscript ++++ b/cctbx_sources/cctbx/SConscript +@@ -96,9 +96,12 @@ lib_cctbx_sources = [ + ] + if (env_etc.static_libraries): builder = envlm.StaticLibrary + else: builder = envlm.SharedLibrary ++name='cctbx' + builder( +- target="#lib/cctbx", +- source=lib_cctbx_sources) ++ target="#lib/"+name, ++ source=lib_cctbx_sources) ++desc='Library for general crystallographic applications' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + SConscript("examples/SConscript") + +diff --git a/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript b/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript +index 5a5cfbd..4328794 100644 +--- a/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript ++++ b/cctbx_sources/cctbx/sgtbx/direct_space_asu/proto/SConscript +@@ -16,9 +16,12 @@ lib_asu_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + ++name='cctbx_sgtbx_asu' + builder( +- target="#lib/cctbx_sgtbx_asu", ++ target="#lib/"+name, + source=lib_asu_sources) ++desc='Direct space asymmetric unit class library' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env.Prepend(LIBS=["cctbx_sgtbx_asu"]) +diff --git a/cctbx_sources/iotbx/mtz/SConscript b/cctbx_sources/iotbx/mtz/SConscript +index cd539e6..f7d22b8 100644 +--- a/cctbx_sources/iotbx/mtz/SConscript ++++ b/cctbx_sources/iotbx/mtz/SConscript +@@ -9,13 +9,17 @@ env.Append(SHCXXFLAGS=env_etc.ccp4io_defines) + env_etc.enable_more_warnings(env=env) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='iotbx_mtz' + builder( +- target="#lib/iotbx_mtz", ++ target="#lib/"+name, + source=[ + "object.cpp", + "crystal.cpp", + "dataset.cpp", + "column.cpp"]) ++desc='Wrapper Library to work with CCP4 MTZ files' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) ++ + + if (not env_etc.no_boost_python): + Import("env_iotbx_boost_python_ext") +diff --git a/cctbx_sources/iotbx/pdb/SConscript b/cctbx_sources/iotbx/pdb/SConscript +index 9b89fe1..8a83058 100644 +--- a/cctbx_sources/iotbx/pdb/SConscript ++++ b/cctbx_sources/iotbx/pdb/SConscript +@@ -9,8 +9,9 @@ env_etc.include_registry.append( + paths=env_etc.iotbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='iotbx_pdb' + builder( +- target="#lib/iotbx_pdb", ++ target="#lib/"+name, + source=[ + "hybrid_36_c.c", + "hybrid_36_cpp.cpp", +@@ -25,6 +26,8 @@ builder( + "atom_selection.cpp", + "input.cpp", + "input_write.cpp"]) ++desc='Fast comprehensive PDB handling library' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env_etc.include_registry.append(env=env, paths=[env_etc.fable_include]) +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index 11a7810..1e91202 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -1070,8 +1070,34 @@ env_etc.install_path = os.path.abspath(env_etc.destdir + '/' + env_etc.prefix) + env_etc.binpath = os.path.join(env_etc.install_path, 'bin') + env_etc.libpath = os.path.abspath(env_etc.install_path + '/' + env_etc.libdir) + env_etc.inclpath = os.path.join(env_etc.install_path, 'include') ++env_etc.pkgpath = os.path.join(env_etc.install_path, 'lib/pkgconfig') + env_etc.rpath = os.path.abspath(env_etc.prefix + '/' + env_etc.libdir) + ++def create_pc_file(name, version, desc, requires=None, requires_private=None, ++ conflicts=None, libs_private=None): ++ """ Create pkg-config file. """ ++ fpath = '%s/%s.pc'%(abs(libtbx.env.lib_path), name) ++ pc = open(fpath, 'w') ++ pc.write('prefix=%s\n'%env_etc.prefix) ++ pc.write('exec_prefix=${prefix}\n') ++ pc.write('libdir=${prefix}/%s\n'%env_etc.libdir) ++ pc.write('includedir=${prefix}/include\n\n') ++ pc.write('Name: %s\n'%name) ++ pc.write('Description: %s\n'%desc) ++ pc.write('Version: %s\n'%version) ++ if requires != None: ++ pc.write('Requires: %s\n'%requires) ++ if requires_private != None: ++ pc.write('Requires.private: %s\n'%requires_private) ++ if conflicts != None: ++ pc.write('Conflicts: %s\n'%conflicts) ++ pc.write('Libs: -L${libdir} -l%s\n'%name) ++ if libs_private != None: ++ pc.write('Libs.private: %s\n'%libs_private) ++ pc.write('Cflags: -I${includedir}') ++ pc.close() ++env_etc.create_pc_file = create_pc_file ++ + def set_libtool(env): + # Versioning can be provided by appending "-version-info 3:12:1" to SHLINKFLAGS + # Please see: +@@ -1197,6 +1223,11 @@ def create_install_targets(): + src = os.path.join(src_dir, root, filename) + env_base.Install(dest, src) + env_base.Alias("install-header", dest) ++ if re.match('^.*\.pc$', filename, flags=re.IGNORECASE): ++ dest = os.path.join(env_etc.pkgpath, root) ++ src = os.path.join(src_dir, root, filename) ++ env_base.Install(dest, src) ++ env_base.Alias("install-pkgconfig", dest) + if src_dir == lib_dir: + break + +@@ -1204,7 +1235,11 @@ def create_install_targets(): + dest = env_etc.binpath + env_base.Install(dest, Glob('%s/*'%(exe_dev))) + env_base.Alias("install-bin", dest) +- Alias('install', ['install-header', 'install-shlib', 'install-bin']) ++ Alias('install', ['install-header', ++ 'install-shlib', ++ 'install-bin', ++ 'install-pkgconfig', ++ ]) + os.chdir(cwd) + + if 'install' in COMMAND_LINE_TARGETS: +diff --git a/cctbx_sources/mmtbx/masks/SConscript b/cctbx_sources/mmtbx/masks/SConscript +index ef93088..a6187cc 100644 +--- a/cctbx_sources/mmtbx/masks/SConscript ++++ b/cctbx_sources/mmtbx/masks/SConscript +@@ -13,9 +13,12 @@ lib_sources = [ + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary + ++name='mmtbx_masks' + builder( +- target="#lib/mmtbx_masks", ++ target="#lib/"+name, + source=lib_sources) ++desc='Masks for bulk solvent modelling' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env = env.Clone() + env.Prepend(LIBS=["mmtbx_masks", "iotbx_pdb"]) +diff --git a/cctbx_sources/omptbx/SConscript b/cctbx_sources/omptbx/SConscript +index 43aac91..76bb923 100644 +--- a/cctbx_sources/omptbx/SConscript ++++ b/cctbx_sources/omptbx/SConscript +@@ -12,9 +12,12 @@ env_etc.include_registry.append( + paths=[env_etc.omptbx_include]) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='omptbx' + builder( +- target="#lib/omptbx", ++ target="#lib/"+name, + source=["stubs.cpp"]) ++desc='OpenMP interface for CCTBX' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_boost_python_ext") +diff --git a/cctbx_sources/rstbx/SConscript b/cctbx_sources/rstbx/SConscript +index e2958a1..6d66476 100644 +--- a/cctbx_sources/rstbx/SConscript ++++ b/cctbx_sources/rstbx/SConscript +@@ -26,14 +26,17 @@ env_etc.include_registry.append( + paths=env_etc.rstbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name='rstbx' + builder( +- target="#lib/rstbx", ++ target="#lib/"+name, + source=["dps_core/dps_core.cpp", + "dps_core/directional_fft.cpp", + "dps_core/direction.cpp", + "diffraction/ewald_sphere.cpp", + "diffraction/partial_spot_position_partial_H.cpp" + ]) ++desc='Library for calculations in reciprocal space' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_boost_python_ext") +diff --git a/cctbx_sources/scitbx/boost_python/SConscript b/cctbx_sources/scitbx/boost_python/SConscript +index b906eb3..0b81d9a 100644 +--- a/cctbx_sources/scitbx/boost_python/SConscript ++++ b/cctbx_sources/scitbx/boost_python/SConscript +@@ -19,6 +19,9 @@ lib_scitbx_boost_python_sources = [ + ] + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary ++name=env_etc.scitbx_boost_python + builder( +- target="#lib/%s"%env_etc.scitbx_boost_python, ++ target="#lib/"+name, + source=lib_scitbx_boost_python_sources) ++desc='#TODO' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) +diff --git a/cctbx_sources/scitbx/minpack/SConscript b/cctbx_sources/scitbx/minpack/SConscript +index 7c325cb..ee7509e 100644 +--- a/cctbx_sources/scitbx/minpack/SConscript ++++ b/cctbx_sources/scitbx/minpack/SConscript +@@ -9,7 +9,10 @@ env_etc.include_registry.append( + env.Append(LIBS=env_etc.libm) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target='#lib/scitbx_minpack', source=["raw.cpp"]) ++name='scitbx_minpack' ++builder(target='#lib/'+name, source=["raw.cpp"]) ++desc='C++ port of files in MINPACK' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_scitbx_boost_python_ext") +diff --git a/cctbx_sources/scitbx/slatec/SConscript b/cctbx_sources/scitbx/slatec/SConscript +index ca9b6da..39e38e1 100644 +--- a/cctbx_sources/scitbx/slatec/SConscript ++++ b/cctbx_sources/scitbx/slatec/SConscript +@@ -6,4 +6,7 @@ env_etc.enable_more_warnings(env=env) + env.Append(LIBS=env_etc.libm) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target='#lib/scitbx_slatec', source=["lib_c.c"]) ++name='scitbx_slatec' ++builder(target='#lib/'+name, source=["lib_c.c"]) ++desc='C port of files in SLATEC' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) +diff --git a/cctbx_sources/smtbx/refinement/constraints/SConscript b/cctbx_sources/smtbx/refinement/constraints/SConscript +index 67d99dc..306d1a4 100644 +--- a/cctbx_sources/smtbx/refinement/constraints/SConscript ++++ b/cctbx_sources/smtbx/refinement/constraints/SConscript +@@ -4,7 +4,10 @@ env_etc.include_registry.append(env=env, + paths=["."] + env_etc.smtbx_common_includes) + if (env_etc.static_libraries): builder = env.StaticLibrary + else: builder = env.SharedLibrary +-builder(target="#lib/smtbx_refinement_constraints", source=Glob("*.cpp")) ++name='smtbx_refinement_constraints' ++builder(target="#lib/"+name, source=Glob("*.cpp")) ++desc='Library for small molecule crystallography constraints' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + env_program = env.Clone() + env_program.Prepend(LIBS=[ "cctbx", "smtbx_refinement_constraints" ]) +diff --git a/cctbx_sources/spotfinder/SConscript b/cctbx_sources/spotfinder/SConscript +index 1d73677..a63c6d9 100644 +--- a/cctbx_sources/spotfinder/SConscript ++++ b/cctbx_sources/spotfinder/SConscript +@@ -46,9 +46,12 @@ lib_spotfinder_sources = [ + + if (env_etc.static_libraries): builder = envlm.StaticLibrary + else: builder = envlm.SharedLibrary ++name='spotfinder' + builder( +- target="#lib/spotfinder", ++ target="#lib/"+name, + source=lib_spotfinder_sources) ++desc='Library for locating Bragg-Spots on x-ray diffraction images' ++env_etc.create_pc_file(name=name, version='0.0.0', desc=desc) + + if (not env_etc.no_boost_python): + Import("env_no_includes_boost_python_ext") diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0017-Fix-to-use-systems-include-path.patch b/sci-libs/cctbx/files/2013.02.27.0005/0017-Fix-to-use-systems-include-path.patch new file mode 100644 index 0000000..4affc54 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0017-Fix-to-use-systems-include-path.patch @@ -0,0 +1,128 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:15:43 +0200 +Subject: Fix to use systems include path + +--- + .../cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h | 4 ++-- + .../cbflib_adaptbx/detectors/boost_python/general_cbf_write.h | 4 ++-- + cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h | 4 ++-- + .../cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp | 6 +++--- + cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp | 4 ++-- + cctbx_sources/ccp4io_adaptbx/ext.cpp | 2 +- + cctbx_sources/iotbx/mtz/ext.cpp | 2 +- + cctbx_sources/iotbx/mtz/object.h | 6 +++--- + 8 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h +index 66677bd..516b319 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/cbf_binary_adaptor.h +@@ -3,8 +3,8 @@ + #include + #include + #include +-#include +-#include ++#include ++#include + + namespace iotbx { + namespace detectors { +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h +index c6c1afb..f45b4d1 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/boost_python/general_cbf_write.h +@@ -1,8 +1,8 @@ + #ifndef GENERAL_CBF_WRITE_H + #define GENERAL_CBF_WRITE_H + #include +-#include "cbf_binary.h" +-#include "cbf_compress.h" ++#include "cbf/cbf_binary.h" ++#include "cbf/cbf_compress.h" + + namespace iotbx { + namespace detectors { +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h b/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h +index b5cc407..3787c7b 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_adaptor.h +@@ -8,8 +8,8 @@ + #include + #include + #include +-#include +-#include ++#include ++#include + #include + + #undef cbf_failnez +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp +index 2edbfb5..526556f 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.cpp +@@ -244,9 +244,9 @@ extern "C" { + #include + #include + +-#include "cbf.h" +-#include "cbf_file.h" +-#include "cbf_byte_offset.h" ++#include "cbf/cbf.h" ++#include "cbf/cbf_file.h" ++#include "cbf/cbf_byte_offset.h" + #include + + /* Changes made in the byte-offset algorithm +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp b/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp +index 5f5d9b1..d121530 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp ++++ b/cctbx_sources/cbflib_adaptbx/detectors/tst_memory.cpp +@@ -1,5 +1,5 @@ +-#include +-#include ++#include ++#include + #include + #include + #include +diff --git a/cctbx_sources/ccp4io_adaptbx/ext.cpp b/cctbx_sources/ccp4io_adaptbx/ext.cpp +index ce21568..e507515 100644 +--- a/cctbx_sources/ccp4io_adaptbx/ext.cpp ++++ b/cctbx_sources/ccp4io_adaptbx/ext.cpp +@@ -1,5 +1,5 @@ + #include +-#include ++#include + #include + + namespace ccp4io_adaptbx { namespace boost_python { +diff --git a/cctbx_sources/iotbx/mtz/ext.cpp b/cctbx_sources/iotbx/mtz/ext.cpp +index b1a0db7..6aa416a 100644 +--- a/cctbx_sources/iotbx/mtz/ext.cpp ++++ b/cctbx_sources/iotbx/mtz/ext.cpp +@@ -1,5 +1,5 @@ + #include +-#include ++#include + + namespace iotbx { namespace mtz { namespace boost_python { + +diff --git a/cctbx_sources/iotbx/mtz/object.h b/cctbx_sources/iotbx/mtz/object.h +index da35fcf..b593534 100644 +--- a/cctbx_sources/iotbx/mtz/object.h ++++ b/cctbx_sources/iotbx/mtz/object.h +@@ -6,9 +6,9 @@ + # include + #endif + +-#include +-#include +-#include ++#include ++#include ++#include + #include + #include + #include diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0018-Fix-to-skip-build-of-clipper-examples.patch b/sci-libs/cctbx/files/2013.02.27.0005/0018-Fix-to-skip-build-of-clipper-examples.patch new file mode 100644 index 0000000..ffd4ebb --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0018-Fix-to-skip-build-of-clipper-examples.patch @@ -0,0 +1,52 @@ +From: Radostan Riedel +Date: Tue, 7 Aug 2012 18:19:02 +0200 +Subject: Fix to skip build of clipper examples + +--- + cctbx_sources/clipper_adaptbx/SConscript | 33 +++++++++++++++--------------- + 1 file changed, 17 insertions(+), 16 deletions(-) + +diff --git a/cctbx_sources/clipper_adaptbx/SConscript b/cctbx_sources/clipper_adaptbx/SConscript +index c39047f..b0699ad 100644 +--- a/cctbx_sources/clipper_adaptbx/SConscript ++++ b/cctbx_sources/clipper_adaptbx/SConscript +@@ -61,22 +61,23 @@ else: + env_exe = env.Clone() + env_exe.Prepend(LIBS=[env_etc.clipper_libs[0]]) + +-exe = env_exe.Program( +- target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' +- +env["PROGSUFFIX"], +- source = ["../clipper/examples/symtest.cpp", +- ]) +-libtbx.env.write_dispatcher_in_bin( +- source_file=exe[0].get_abspath(), +- target_file="clipper.symtest") +-exe = env_exe.Program( +- target='#exe_dev/'+env["PROGPREFIX"]+'clipper.sanity_check' +- +env["PROGSUFFIX"], +- source = ["sanity_check.cpp", +- ]) +-libtbx.env.write_dispatcher_in_bin( +- source_file=exe[0].get_abspath(), +- target_file="clipper.sanity_check") ++# Skip building clipper examples in Debian ++#exe = env_exe.Program( ++# target='#exe_dev/'+env["PROGPREFIX"]+'clipper.symtest' ++# +env["PROGSUFFIX"], ++# source = ["../clipper/examples/symtest.cpp", ++# ]) ++#libtbx.env.write_dispatcher_in_bin( ++# source_file=exe[0].get_abspath(), ++# target_file="clipper.symtest") ++#exe = env_exe.Program( ++# target='#exe_dev/'+env["PROGPREFIX"]+'clipper.sanity_check' ++# +env["PROGSUFFIX"], ++# source = ["sanity_check.cpp", ++# ]) ++#libtbx.env.write_dispatcher_in_bin( ++# source_file=exe[0].get_abspath(), ++# target_file="clipper.sanity_check") + + if (hasattr(env_etc, "cctbx_include")): + if (not env_etc.no_boost_python): diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0101-system-cbf.patch b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-cbf.patch new file mode 100644 index 0000000..1688026 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-cbf.patch @@ -0,0 +1,16 @@ + cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h +index 0089325..02234d1 100644 +--- a/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h ++++ b/cctbx_sources/cbflib_adaptbx/detectors/cbf_byte_offset_optimized.h +@@ -5,7 +5,7 @@ + extern "C" { + #endif + #include +-#include ++#include + + /* Decompress an array with the byte-offset algorithm */ + diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0101-system-clipper.patch b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-clipper.patch new file mode 100644 index 0000000..6f50e5f --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-clipper.patch @@ -0,0 +1,185 @@ + cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h | 2 +- + cctbx_sources/clipper/clipper/contrib/Makefile.dep | 14 +++++++------- + cctbx_sources/clipper/clipper/contrib/edcalc.cpp | 2 +- + cctbx_sources/clipper/clipper/contrib/fffear.cpp | 2 +- + .../clipper/clipper/contrib/function_object_bases.h | 6 +++--- + cctbx_sources/clipper/clipper/contrib/sfcalc.cpp | 2 +- + cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp | 4 ++-- + cctbx_sources/clipper/clipper/contrib/sfweight.cpp | 4 ++-- + cctbx_sources/clipper/clipper/contrib/skeleton.cpp | 2 +- + cctbx_sources/clipper_adaptbx/clipper/SConscript | 1 - + 10 files changed, 19 insertions(+), 20 deletions(-) + +diff --git a/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h b/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h +index bd9f7d2..079958d 100644 +--- a/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h ++++ b/cctbx_sources/clipper/clipper/cctbx/clipper_cctbx.h +@@ -47,7 +47,7 @@ + #define CLIPPER_CCTBX + + +-#include "../core/hkl_datatypes.h" ++#include "clipper/core/hkl_datatypes.h" + + #include + #include +diff --git a/cctbx_sources/clipper/clipper/contrib/Makefile.dep b/cctbx_sources/clipper/clipper/contrib/Makefile.dep +index 98251b1..0fe7bb3 100644 +--- a/cctbx_sources/clipper/clipper/contrib/Makefile.dep ++++ b/cctbx_sources/clipper/clipper/contrib/Makefile.dep +@@ -1,27 +1,27 @@ + +-function_object_bases.h: ../core/hkl_datatypes.h ../core/xmap.h ../core/nxmap_operator.h ++function_object_bases.h: clipper/core/hkl_datatypes.h clipper/core/xmap.h clipper/core/nxmap_operator.h + + function_object_bases.o: function_object_bases.cpp function_object_bases.h + + sfcalc.h: function_object_bases.h + +-sfcalc.o: sfcalc.cpp sfcalc.h ../core/atomsf.h ++sfcalc.o: sfcalc.cpp sfcalc.h clipper/core/atomsf.h + + edcalc.h: function_object_bases.h + +-edcalc.o: edcalc.cpp edcalc.h ../core/atomsf.h ++edcalc.o: edcalc.cpp edcalc.h clipper/core/atomsf.h + + sfcalc_obs.h: function_object_bases.h + +-sfcalc_obs.o: sfcalc_obs.cpp sfcalc_obs.h edcalc.h ../core/hkl_compute.h ../core/resol_targetfn.h ++sfcalc_obs.o: sfcalc_obs.cpp sfcalc_obs.h edcalc.h clipper/core/hkl_compute.h clipper/core/resol_targetfn.h + + sfweight.h: function_object_bases.h + +-sfweight.o: sfweight.cpp sfweight.h ../core/hkl_operators.h ../core/resol_targetfn.h ++sfweight.o: sfweight.cpp sfweight.h clipper/core/hkl_operators.h clipper/core/resol_targetfn.h + + fffear.h: function_object_bases.h + +-fffear.o: fffear.cpp fffear.h ../core/map_interp.h ++fffear.o: fffear.cpp fffear.h clipper/core/map_interp.h + + mapfilter.h: function_object_bases.h + +@@ -29,7 +29,7 @@ mapfilter.o: mapfilter.cpp mapfilter.h + + skeleton.h: function_object_bases.h + +-skeleton.o: skeleton.cpp skeleton.h ../core/map_utils.h ++skeleton.o: skeleton.cpp skeleton.h clipper/core/map_utils.h + + originmatch.h: function_object_bases.h + +diff --git a/cctbx_sources/clipper/clipper/contrib/edcalc.cpp b/cctbx_sources/clipper/clipper/contrib/edcalc.cpp +index f5df7b2..cc031bc 100644 +--- a/cctbx_sources/clipper/clipper/contrib/edcalc.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/edcalc.cpp +@@ -43,7 +43,7 @@ + + #include "edcalc.h" + +-#include "../core/atomsf.h" ++#include "clipper/core/atomsf.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/fffear.cpp b/cctbx_sources/clipper/clipper/contrib/fffear.cpp +index 9a728f7..189855a 100644 +--- a/cctbx_sources/clipper/clipper/contrib/fffear.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/fffear.cpp +@@ -42,7 +42,7 @@ + + #include "fffear.h" + +-#include "../core/map_interp.h" ++#include "clipper/core/map_interp.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/function_object_bases.h b/cctbx_sources/clipper/clipper/contrib/function_object_bases.h +index e6c98c7..4a40c73 100644 +--- a/cctbx_sources/clipper/clipper/contrib/function_object_bases.h ++++ b/cctbx_sources/clipper/clipper/contrib/function_object_bases.h +@@ -48,9 +48,9 @@ + #define CLIPPER_FUNCTION_OBJECT_BASES + + +-#include "../core/hkl_datatypes.h" +-#include "../core/xmap.h" +-#include "../core/nxmap_operator.h" ++#include "clipper/core/hkl_datatypes.h" ++#include "clipper/core/xmap.h" ++#include "clipper/core/nxmap_operator.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp b/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp +index 48c0d9c..a3c63f0 100644 +--- a/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfcalc.cpp +@@ -43,7 +43,7 @@ + + #include "sfcalc.h" + +-#include "../core/atomsf.h" ++#include "clipper/core/atomsf.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp b/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp +old mode 100755 +new mode 100644 +index de47e09..0f67585 +--- a/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfcalc_obs.cpp +@@ -43,8 +43,8 @@ + + #include "sfcalc_obs.h" + #include "edcalc.h" +-#include "../core/hkl_compute.h" +-#include "../core/resol_targetfn.h" ++#include "clipper/core/hkl_compute.h" ++#include "clipper/core/resol_targetfn.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/sfweight.cpp b/cctbx_sources/clipper/clipper/contrib/sfweight.cpp +old mode 100755 +new mode 100644 +index 1b2d4dc..6ec98c2 +--- a/cctbx_sources/clipper/clipper/contrib/sfweight.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/sfweight.cpp +@@ -42,8 +42,8 @@ + + + #include "sfweight.h" +-#include "../core/hkl_operators.h" +-#include "../core/resol_targetfn.h" ++#include "clipper/core/hkl_operators.h" ++#include "clipper/core/resol_targetfn.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper/clipper/contrib/skeleton.cpp b/cctbx_sources/clipper/clipper/contrib/skeleton.cpp +index bff1049..14ebf55 100644 +--- a/cctbx_sources/clipper/clipper/contrib/skeleton.cpp ++++ b/cctbx_sources/clipper/clipper/contrib/skeleton.cpp +@@ -42,7 +42,7 @@ + + #include "skeleton.h" + +-#include "../core/map_utils.h" ++#include "clipper/core/map_utils.h" + + + namespace clipper { +diff --git a/cctbx_sources/clipper_adaptbx/clipper/SConscript b/cctbx_sources/clipper_adaptbx/clipper/SConscript +index 1911eb1..df03808 100644 +--- a/cctbx_sources/clipper_adaptbx/clipper/SConscript ++++ b/cctbx_sources/clipper_adaptbx/clipper/SConscript +@@ -11,5 +11,4 @@ env.SharedLibrary( + "clipper_ext.cpp", + "hendrickson_lattman_bpl.cpp", + "sigmaa_bpl.cpp", +- "../../clipper/clipper/contrib/sfweight.cpp", + "../../clipper/clipper/cctbx/clipper_cctbx.cpp"]+clipper_contrib_files) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0101-system-libccp4.patch b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-libccp4.patch new file mode 100644 index 0000000..16d088d --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0101-system-libccp4.patch @@ -0,0 +1,15 @@ + cctbx_sources/iotbx/mtz/object.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/iotbx/mtz/object.cpp b/cctbx_sources/iotbx/mtz/object.cpp +index c6ce383..1975a44 100644 +--- a/cctbx_sources/iotbx/mtz/object.cpp ++++ b/cctbx_sources/iotbx/mtz/object.cpp +@@ -1,5 +1,5 @@ +-#include +-#include ++#include ++#include + #include + #include + #include diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0102-dontstrip.patch b/sci-libs/cctbx/files/2013.02.27.0005/0102-dontstrip.patch new file mode 100644 index 0000000..08118f4 --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0102-dontstrip.patch @@ -0,0 +1,25 @@ + cctbx_sources/libtbx/SConscript | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index debf569..46ab8d8 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -471,7 +471,7 @@ libtbx.scons: Warning: compiling with /MDd: + elif libtbx.env.build_options.debug_symbols: + lkfl = ["-rdynamic"] + else: +- lkfl = ["-s"] ++ lkfl = [] + env_etc.shlinkflags = ["-shared"] + if (libtbx.env.build_options.mode == "profile"): + env_base.Prepend(LINKFLAGS=["-pg"]) +@@ -589,7 +589,7 @@ else: + lkfl = ["-rdynamic"] + + else: +- lkfl = ["-s"] ++ lkfl = [] + env_etc.shlinkflags = ["-shared"] + if (libtbx.env.build_options.mode == "profile"): + env_base.Prepend(LINKFLAGS=["-pg"]) diff --git a/sci-libs/cctbx/files/2013.02.27.0005/0103-respect-cflags.patch b/sci-libs/cctbx/files/2013.02.27.0005/0103-respect-cflags.patch new file mode 100644 index 0000000..60a3c5b --- /dev/null +++ b/sci-libs/cctbx/files/2013.02.27.0005/0103-respect-cflags.patch @@ -0,0 +1,60 @@ + cctbx_sources/libtbx/SConscript | 17 ++++++----------- + 1 file changed, 6 insertions(+), 11 deletions(-) + +diff --git a/cctbx_sources/libtbx/SConscript b/cctbx_sources/libtbx/SConscript +index c273536..a70dae8 100644 +--- a/cctbx_sources/libtbx/SConscript ++++ b/cctbx_sources/libtbx/SConscript +@@ -120,7 +120,7 @@ def patch_scons_env_for_ad_hoc_debug(env, O123_replacement=["-O0", "-g"]): + for f in env[kw]: + if (f in ["-O1", "-O2", "-O3"]): + dbg_ccflags.extend(O123_replacement) +- elif (f not in ["-ffast-math", "-funroll-loops"]): ++ elif (f not in []): + dbg_ccflags.append(f) + env.Replace(**{kw: dbg_ccflags}) + env_etc.patch_scons_env_for_ad_hoc_debug = patch_scons_env_for_ad_hoc_debug +@@ -453,9 +453,9 @@ libtbx.scons: Warning: compiling with /MDd: + warn_options = gcc_common_warn_options() + ["-Werror"] + env_etc.ccflags_base.extend(warn_options) + if (libtbx.env.build_options.optimization): +- opts = ["-DNDEBUG", "-O3", "-ffast-math"] ++ opts = ["-DNDEBUG"] + if (env_etc.gcc_version >= 40100 and is_64bit_architecture): +- opts.insert(2, "-funroll-loops") ++ opts.insert(2, ) + else: + opts = ["-O0", "-fno-inline"] + if (libtbx.env.build_options.mode == "profile"): +@@ -565,9 +565,7 @@ else: + warn_options = gcc_common_warn_options() + ["-Werror"] + env_etc.ccflags_base.extend(warn_options) + if (libtbx.env.build_options.optimization): +- opts = ["-DNDEBUG", "-O3", "-ffast-math"] +- if (env_etc.gcc_version >= 40100 and is_64bit_architecture): +- opts.insert(2, "-funroll-loops") ++ opts = ["-DNDEBUG"] + else: + opts = ["-O0", "-fno-inline"] + if (libtbx.env.build_options.mode == "profile"): +@@ -633,10 +631,7 @@ int main() { + env_etc.cxxflags_base = [] + setup_clang_warning(env_etc, libtbx.env.build_options.warning_level) + if (libtbx.env.build_options.optimization): +- opts = [ +- "-DNDEBUG", +- "-O3", +- "-ffast-math"] ++ opts = ["-DNDEBUG"] + else: + opts = ["-O0", "-fno-inline"] + if (libtbx.env.build_options.debug_symbols): +@@ -782,7 +777,7 @@ int main() { + env_etc.cxxflags_base.append("-fcoalesce-templates") + env_etc.cxxflags_base.append("-DBOOST_ALL_NO_LIB") + if (libtbx.env.build_options.optimization): +- opts = ["-DNDEBUG", "-O3", "-ffast-math"] ++ opts = ["-DNDEBUG"] + if (cxx == "c++" and env_etc.gcc_version + and env_etc.gcc_version == 40000): + opts[1] = "-O2" # Apple's optimizer is broken diff --git a/sci-libs/cctbx/metadata.xml b/sci-libs/cctbx/metadata.xml new file mode 100644 index 0000000..a259ded --- /dev/null +++ b/sci-libs/cctbx/metadata.xml @@ -0,0 +1,18 @@ + + + + sci-chemistry + + jlec@gentoo.org + Justin Lecher (jlec) + + + The Computational Crystallography Toolbox (cctbx) is being developed + as the open source component of the PHENIX system. The goal of + the PHENIX project is to advance automation of macromolecular structure + determination. PHENIX depends on the cctbx, but not vice versa. This + hierarchical approach enforces a clean design as a reusable library. + The cctbx is therefore also useful for small-molecule crystallography + and even general scientific applications. + +