1 | # $Id: Portfile 49577 2009-04-12 13:36:57Z jmr@macports.org $ |
---|
2 | |
---|
3 | PortSystem 1.0 |
---|
4 | |
---|
5 | name boost |
---|
6 | version 1.39.0 |
---|
7 | categories devel |
---|
8 | maintainers gmail.com:sanchom |
---|
9 | description Collection of portable C++ source libraries |
---|
10 | long_description Boost provides free portable peer-reviewed C++ \ |
---|
11 | libraries. The emphasis is on portable libraries \ |
---|
12 | which work well with the C++ Standard Library. |
---|
13 | homepage http://www.boost.org |
---|
14 | master_sites sourceforge |
---|
15 | distname ${name}_[strsed ${version} {g/[.]/_/}] |
---|
16 | use_bzip2 yes |
---|
17 | checksums md5 a17281fd88c48e0d866e1a12deecbcc0 \ |
---|
18 | sha1 6af42f74ab24ccc51589a025593bad298c8adde8 \ |
---|
19 | rmd160 4962256b48fa8563bf373b8bed97cc8655206a51 |
---|
20 | platforms darwin |
---|
21 | use_parallel_build yes |
---|
22 | |
---|
23 | # not autoconf |
---|
24 | universal_variant no |
---|
25 | |
---|
26 | #patchfiles patch-configure.diff |
---|
27 | |
---|
28 | depends_build path:bin/bjam:boost-jam |
---|
29 | depends_lib port:zlib port:bzip2 |
---|
30 | |
---|
31 | |
---|
32 | configure {} |
---|
33 | #configure.args --with-bjam=${prefix}/bin/bjam |
---|
34 | |
---|
35 | # --layout=system |
---|
36 | # (don't put compiler name or version number in the libraries; |
---|
37 | # don't put version number in the include directory) |
---|
38 | # [default: off] |
---|
39 | # |
---|
40 | # link=shared,static (build static and dynamic libraries) |
---|
41 | # [default: link=shared,static] |
---|
42 | # |
---|
43 | # runtime-link=shared,static |
---|
44 | # (link to static and shared C and C++ runtime (e.g. use -lstdc++-static)) |
---|
45 | # static runtime-link libraries are of the form *-s.a or -sd.a |
---|
46 | # [default: runtime-link=shared] |
---|
47 | # |
---|
48 | # threading=single,multi |
---|
49 | # (build single- and multi-threaded libraries) |
---|
50 | # multi-threaded libraries are of the form of *-mt.dylib, -mt-d.dylib, *-mt.a, *-mt-s.a, *-mt-d.a, or *-mt-ds.a |
---|
51 | # [default: threading=multi] |
---|
52 | # |
---|
53 | # debug release |
---|
54 | # (buil debug and release versions of libraries) |
---|
55 | # debug libraries are of the form *-d.dylib, *-d.a, or *-ds.a |
---|
56 | # [default: release] |
---|
57 | # |
---|
58 | set bjam_args {--layout=system --without-mpi} |
---|
59 | build.cmd bjam |
---|
60 | build.args ${bjam_args} |
---|
61 | build.target stage |
---|
62 | build.env-append BZIP2_INCLUDE=${prefix}/include BZIP2_LIBPATH=${prefix}/lib \ |
---|
63 | ZLIB_INCLUDE=${prefix}/include ZLIB_LIBPATH=${prefix}/lib |
---|
64 | |
---|
65 | destroot.cmd bjam |
---|
66 | destroot.args ${bjam_args} |
---|
67 | destroot.destdir --prefix=${destroot}${prefix} |
---|
68 | destroot.target install |
---|
69 | destroot.env-append BZIP2_INCLUDE=${prefix}/include BZIP2_LIBPATH=${prefix}/lib \ |
---|
70 | ZLIB_INCLUDE=${prefix}/include ZLIB_LIBPATH=${prefix}/lib |
---|
71 | |
---|
72 | pre-build { |
---|
73 | # Write out the user-config.jam file which contains the build options... |
---|
74 | set uc [open ${worksrcpath}/tools/build/v2/user-config.jam w] |
---|
75 | puts $uc "using darwin : : ${configure.cxx} ;" |
---|
76 | if { [variant_isset mpi] } { |
---|
77 | puts ${uc} "\nusing mpi : ${prefix}/bin/openmpicxx ;" |
---|
78 | } |
---|
79 | if { [variant_isset python24] } { |
---|
80 | set pyversion 2.4 |
---|
81 | } elseif { [variant_isset python25] } { |
---|
82 | set pyversion 2.5 |
---|
83 | } elseif { [variant_isset python26] } { |
---|
84 | set pyversion 2.6 |
---|
85 | } |
---|
86 | if { ${pyversion} } { |
---|
87 | puts ${uc} "\nusing python : ${pyversion} : ${prefix}/bin/python${pyversion} ;" |
---|
88 | } |
---|
89 | close $uc |
---|
90 | } |
---|
91 | |
---|
92 | platform darwin { |
---|
93 | post-destroot { |
---|
94 | # ensure the identification name of the dynamic libraries agree |
---|
95 | # with their final destination path (not the destroot path that |
---|
96 | # they've just been installed to) |
---|
97 | foreach lib [glob -directory ${destroot}${prefix}/lib/ *.dylib] { |
---|
98 | set libtail [file tail ${lib}] |
---|
99 | system "install_name_tool -id ${prefix}/lib/${libtail} ${lib}" |
---|
100 | } |
---|
101 | |
---|
102 | # set the install_name for every library referenced by another library |
---|
103 | # to include the final destination path as well |
---|
104 | foreach lib [glob -tails -directory ${destroot}${prefix}/lib/ *.dylib] { |
---|
105 | set installed_name ${prefix}/lib/${lib} |
---|
106 | foreach lib2 [glob -directory ${destroot}${prefix}/lib/ *.dylib *.so] { |
---|
107 | system "install_name_tool -change ${lib} ${installed_name} ${lib2}" |
---|
108 | } |
---|
109 | } |
---|
110 | |
---|
111 | # mpi.so needs to be in a specific directory for Python to find it |
---|
112 | if { [file exists ${destroot}${prefix}/lib/mpi.so] } { |
---|
113 | if { [variant_isset python24] } { |
---|
114 | set spkg ${prefix}/lib/python2.4/site-packages |
---|
115 | } elseif { [variant_isset python25] } { |
---|
116 | set spkg ${prefix}/lib/python2.5/site-packages |
---|
117 | } elseif { [variant_isset python26] } { |
---|
118 | set spkg ${frameworks_dir}/Python.framework/Versions/2.6/lib/python2.6/site-packages |
---|
119 | } |
---|
120 | |
---|
121 | set sodir ${spkg}/boost |
---|
122 | xinstall -m 755 -d ${destroot}${sodir} |
---|
123 | touch ${destroot}${sodir}/__init__.py |
---|
124 | system "install_name_tool -id ${sodir}/mpi.so ${destroot}${prefix}/lib/mpi.so" |
---|
125 | move ${destroot}${prefix}/lib/mpi.so ${destroot}${sodir}/mpi.so |
---|
126 | } |
---|
127 | } |
---|
128 | } |
---|
129 | |
---|
130 | variant python24 description {build python 2.4 support} conflicts python25 python26 { |
---|
131 | set pyversion 2.4 |
---|
132 | depends_lib-append port:python[strsed ${pyversion} {g/[.]//}] |
---|
133 | |
---|
134 | # set bjam_args [concat ${bjam_args} --with-python] |
---|
135 | # build.args ${bjam_args} |
---|
136 | } |
---|
137 | |
---|
138 | variant python25 description {build python 2.5 support} conflicts python24 python26 { |
---|
139 | set pyversion 2.5 |
---|
140 | depends_lib-append port:python[strsed ${pyversion} {g/[.]//}] |
---|
141 | |
---|
142 | # set bjam_args [concat ${bjam_args} --with-python] |
---|
143 | # build.args ${bjam_args} |
---|
144 | } |
---|
145 | |
---|
146 | variant python26 description {build python 2.6 support} conflicts python24 python25 { |
---|
147 | set pyversion 2.6 |
---|
148 | depends_lib-append port:python[strsed ${pyversion} {g/[.]//}] |
---|
149 | |
---|
150 | # set bjam_args [concat ${bjam_args} --with-python] |
---|
151 | # build.args ${bjam_args} |
---|
152 | } |
---|
153 | |
---|
154 | variant icu description {enable Unicode/ICU support in Regex} { |
---|
155 | depends_lib-append port:icu |
---|
156 | |
---|
157 | build.env-append ICU_PATH=${prefix} |
---|
158 | destroot.env-append ICU_PATH=${prefix} |
---|
159 | } |
---|
160 | |
---|
161 | variant graphml description {enable GraphML support} { |
---|
162 | depends_lib-append port:expat |
---|
163 | |
---|
164 | build.env-append EXPAT_INCLUDE=${prefix}/include EXPAT_LIBPATH=${prefix}/lib |
---|
165 | destroot.env-append EXPAT_INCLUDE=${prefix}/include EXPAT_LIBPATH=${prefix}/lib |
---|
166 | } |
---|
167 | |
---|
168 | variant openmpi description {build mpi support} { |
---|
169 | depends_lib-append port:openmpi |
---|
170 | |
---|
171 | set bjam_args [ldelete ${bjam_args} --without-mpi] |
---|
172 | build.args ${bjam_args} |
---|
173 | destroot.args ${bjam_args} |
---|
174 | } |
---|
175 | |
---|
176 | variant docs description {install documentation} { |
---|
177 | post-destroot { |
---|
178 | # Install HTML documentation |
---|
179 | xinstall -d ${destroot}${prefix}/share/doc/${name} |
---|
180 | xinstall -W ${worksrcpath} index.htm index.html boost.css rst.css boost.png \ |
---|
181 | ${destroot}${prefix}/share/doc/${name} |
---|
182 | file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/${name} |
---|
183 | file copy ${worksrcpath}/more ${destroot}${prefix}/share/doc/${name} |
---|
184 | file copy ${worksrcpath}/tools ${destroot}${prefix}/share/doc/${name} |
---|
185 | file copy ${worksrcpath}/libs ${destroot}${prefix}/share/doc/${name} |
---|
186 | file copy ${worksrcpath}/wiki ${destroot}${prefix}/share/doc/${name} |
---|
187 | } |
---|
188 | } |
---|
189 | |
---|
190 | # Doesn't work just yet, not sure why... |
---|
191 | # variant debug description {build debug libraries} { |
---|
192 | # build.target-append " debug release" |
---|
193 | # } |
---|
194 | |
---|
195 | variant st description {build single-threaded libraries} { |
---|
196 | build.target-append " threading=single,multi" |
---|
197 | } |
---|