upgrade to 1.31.0

- builds the most recent boost version (1.31.0)
 - respects PTHREAD_{CFLAGS, LIBS} (credits for the PTHREAD_LIBS part
   go to Craig Rodrigues <rodrigc@crodrigues.org>)
 - builds all boost libraries
 - installs docs into DOCSDIR, and examples into EXAMPLESDIR (as
   before), but the hyperlinks to the example files are corrected (pls.
   report if you find some broken links)
 - has new various tunable options, such as
    o WITH_DEBUG
    o WITHOUT_THREAD
    o WITH_OPTIMIZED_CFLAGS
    o VERBOSE_BUILD
 - forced major numbers for shared libraries (everything defaults to
   .so.1, and is symlinked to .so)
 - installs the possible versions of the libraries (w/ or w/o
   debugging or threading support) with the same suffix- and prefix-less
   name, e.g. instead of libboost_filesystem-gcc-debug-s.so.1 (the gcc toolset,
   debugging info and single threaded) and
   libboost_filesystem-gcc-m.so.1 (gcc toolset, release version, multi
   threaded), there now is only libboost_filesystem.so.1.

PR:		63100
Submitted by:	maintainer
This commit is contained in:
Ying-Chieh Liao 2004-02-20 05:32:21 +00:00
parent e8a356853d
commit 7baacd2bb2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=101470
8 changed files with 1939 additions and 1315 deletions

View File

@ -5,41 +5,72 @@
#
# $FreeBSD$
#
# This port has the following tunable options:
#
# option | desscription | default
# ----------------------+-----------------------------+---------
# WITH_PYTHON | enable Python support | off
# WITH_DEBUG | build debugging symbols | off
# WITHOUT_THREADS | turn off threading support | off
# WITH_OPTIMIZED_CFLAGS | enable -O3 optimization | off
# | (otherwise CFLAGS are |
# | respected) |
# VERBOSE_BUILD | show compiler messages | off
PORTNAME= boost
PORTVERSION= 1.30.2
PORTREVISION= 0
PORTVERSION= 1.31.0
CATEGORIES= devel
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR=${PORTNAME}
DISTNAME= ${PORTNAME}-${PORTVERSION}
DISTNAME= ${PORTNAME}_${PORTVERSION:S/./_/g}
MAINTAINER= barner@gmx.de
COMMENT= Free peer-reviewed portable C++ source libraries
MAKE_ENV= BOOST_ROOT=${WRKSRC} BUILD="debug release"
USE_BZIP2= yes
USE_REINPLACE= yes
INSTALLS_SHLIB= yes
MAKE_ENV+= GCC="${CC} ${CFLAGS}"\
GXX="${CXX} ${CXXFLAGS}"
.if defined(WITH_PYTHON)
USE_PYTHON= yes
# 1.30.2 doesn't support python2.3
PYTHON_VERSION= python2.2
COMPILED_LIBS= python
USE_PYTHON= 2.3+
PYTHON_VERSION= python2.3
PLIST_SUB= BOOST_PYTHON=""
MAKE_ENV+= PYTHON_ROOT="${PREFIX}" \
PYTHON_VERSION="${_PYTHON_VERSION}" \
PYTHON_INCLUDES="${PYTHON_INCLUDEDIR}" \
PYTHON_LIB_PATH="${PYTHON_LIBDIR}"
MAKE_ENV+= PYTHON_ROOT="${PREFIX}"\
PYTHON_VERSION="${PYTHON_VERSION}"\
PYTHON_INCLUDES="${PYTHON_INCLUDEDIR}"\
PYTHON_LIB_PATH="${PYTHON_LIBDIR}"
.else
PLIST_SUB= BOOST_PYTHON="@comment "
.endif
INSTALLS_SHLIB= yes
DOCFILES= *.css *.gif *.htm *.html *.jpeg *.jpg *.png
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 502102
FORBIDDEN= "Does not respect PTHREAD_{CFLAGS,LIBS}"
.if defined (VERBOSE_BUILD)
BJAM_OPTIONS= -d2
.endif
.if defined (WITH_DEBUG)
BJAM_BUILD= debug
.else
BJAM_BUILD= release
.endif
.if defined (WITHOUT_THREADS)
BJAM_BUILD+= <threading>single
PLIST_SUB+= BOOST_THREADS="@comment "
.else
BJAM_BUILD+= <threading>multi
PLIST_SUB+= BOOST_THREADS=""
.endif
.if defined (WITH_OPTIMIZED_CFLAGS)
BJAM_BUILD+= <optimization>speed\
<inlining>full
.else
BJAM_BUILD+= <optimization>off
.endif
.if ${ARCH} == alpha
@ -49,32 +80,74 @@ BJAM= ${WRKSRC}/tools/build/jam_src/bin.freebsdsparc/bjam
.else
BJAM= ${WRKSRC}/tools/build/jam_src/bin.freebsd/bjam
.endif
COMPILED_LIBS+= date_time filesystem regex signals test thread
SCRIPTS_ENV+= BJAM="${BJAM}"\
NOPORTDOCS="${NOPORTDOCS}"\
FIND="${FIND}"\
GREP="${GREP}"\
REINPLACE_CMD="${REINPLACE_CMD}"\
LN="${LN}"\
MKDIR="${MKDIR}"\
TAR="${TAR}"
do-configure:
# for -pthread options
.if ${OSVERSION} >= 500016
cd ${WRKSRC} && patch < ${FILESDIR}/gcc-tools.jam.diff
.if !defined(NOPORTDOCS)
SCRIPTS_ENV+= PORTDOCS="true"\
DOCSDIR="${DOCSDIR}"\
EXAMPLESDIR="${EXAMPLESDIR}"
.endif
# Do the right thing(tm) for pthread support
post-patch:
@${REINPLACE_CMD} -e 's|%%PTHREAD_CFLAGS%%|${PTHREAD_CFLAGS}|'\
${WRKSRC}/tools/build/v1/gcc-tools.jam
@${REINPLACE_CMD} -e 's|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|'\
${WRKSRC}/tools/build/v1/gcc-tools.jam
do-build:
cd ${WRKSRC}/tools/build/jam_src && ./build.sh gcc
.for lib in ${COMPILED_LIBS}
cd ${WRKSRC}/libs/${lib}/build && ${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_FLAGS}
.endfor
do-install:
${INSTALL_PROGRAM} ${BJAM} ${PREFIX}/bin/
cd ${WRKSRC} && ${FIND} libs -type f -name \*.a -exec ${INSTALL_DATA} \{\} ${PREFIX}/lib \;
cd ${WRKSRC} && ${FIND} libs -type f -name \*.so -exec ${INSTALL_PROGRAM} \{\} ${PREFIX}/lib \;
cd ${WRKSRC} && ${FIND} boost -type d -exec ${MKDIR} ${PREFIX}/include/\{\} \;
cd ${WRKSRC} && ${FIND} boost -type f -exec ${INSTALL_DATA} \{\} ${PREFIX}/include/\{\} \;
.if !defined(NOPORTDOCS)
${MKDIR} ${DOCSDIR} ${EXAMPLESDIR}
cd ${WRKSRC} && ${FIND} * -type f \( -name \*.htm ${DOCFILES:S/^/-o -name \\/} \) | ${TAR} cTf - - | ${TAR} xUCf ${DOCSDIR} -
cd ${WRKSRC} && ${FIND} libs -type d -name example\* | ${TAR} cTf - - | ${TAR} xUCf ${EXAMPLESDIR} -
# Print configuration
@${ECHO_CMD}
@${ECHO_CMD} Selected options:
@${ECHO_CMD} \(see the Makefile for a description of available tunables\)
@${ECHO_CMD}
@${ECHO_CMD} -n o Debugging symbols....
.if defined (WITH_DEBUG)
@${ECHO_CMD} yes
.else
@${ECHO_CMD} no
.endif
@${ECHO_CMD} -n o Thread support.......
.if defined (WITHOUT_THREADS)
@${ECHO_CMD} no
.else
@${ECHO_CMD} yes
.endif
@${ECHO_CMD} -n o Extra optimization...
.if defined (WITH_OPTIMIZED_CFLAGS)
@${ECHO_CMD} yes
.else
@${ECHO_CMD} no
.endif
@${ECHO_CMD} -n o Python support.......
.if defined (WITH_PYTHON)
@${ECHO_CMD} yes
.else
@${RM} -rf ${WRKSRC}/libs/python
@${ECHO_CMD} no
.endif
@${ECHO_CMD}
# build the bjam project build tool
@cd ${WRKSRC}/tools/build/jam_src && ./build.sh gcc
# build the library
@cd ${WRKSRC}; \
${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_OPTIONS} --prefix=${PREFIX}\
"-sTOOLS=gcc" "-sBUILD=${BJAM_BUILD}"
do-install:
@${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/do-install
.include <bsd.port.post.mk>

View File

@ -1 +1,2 @@
MD5 (boost-1.30.2.tar.gz) = 90aa1cc62f82f50a5dfa6def6a1be32f
MD5 (boost_1_31_0.tar.bz2) = 8cc183538eaa5cfc53d88d0e94bd2fd4
SIZE (boost_1_31_0.tar.bz2) = 6979482

View File

@ -0,0 +1,11 @@
--- libs/test/src/test_tools.cpp.orig Tue Feb 17 16:31:56 2004
+++ libs/test/src/test_tools.cpp Tue Feb 17 16:32:10 2004
@@ -191,7 +191,7 @@
void
print_log_value<char>::operator()( std::ostream& ostr, char t )
{
- if( std::isprint( t ) )
+ if( isprint( t ) )
ostr << '\'' << t << '\'';
else
ostr << std::hex

View File

@ -0,0 +1,11 @@
--- tools/build/v1/allyourbase.jam.orig Wed Feb 18 14:04:28 2004
+++ tools/build/v1/allyourbase.jam Wed Feb 18 14:02:44 2004
@@ -457,7 +457,7 @@
SPLITPATH ?= ":" ; # dwa -- added missing SPLITPATH
STDHDRS ?= /usr/include ;
SUFEXE ?= "" ;
-SUFDLL ?= .so ;
+SUFDLL ?= .so.1 ;
SUFLIB ?= .a ;
SUFOBJ ?= .o ;
PREDLL ?= lib ;

View File

@ -0,0 +1,14 @@
--- tools/build/v1/boost-base.jam.orig Wed Jan 28 23:52:25 2004
+++ tools/build/v1/boost-base.jam Wed Feb 18 14:06:58 2004
@@ -2621,11 +2621,6 @@
local version-tag = [ MATCH "^([^.]+).([^.]+)" : $(version-number[1]) ] ;
version-tag = $(version-tag:J="_") ;
- tags += $(toolset-tag:J=) ;
- tags += $(thread-tag:J=) ;
- tags += $(runtime-tag:J=) ;
- tags += $(version-tag) ;
-
if $(tags)
{
return $(properties) <*><*><tag><prefix>-$(tags:J=-) ;

View File

@ -0,0 +1,22 @@
--- tools/build/v1/gcc-tools.jam.orig Thu Jan 22 05:11:52 2004
+++ tools/build/v1/gcc-tools.jam Wed Feb 18 12:57:30 2004
@@ -61,7 +61,7 @@
flags gcc LINKFLAGS <runtime-link>static : -static ;
flags gcc CFLAGS <debug-symbols>on : -g ;
flags gcc LINKFLAGS <debug-symbols>on : -g ;
-flags gcc CFLAGS <optimization>off : -O0 ;
+flags gcc CFLAGS <optimization>off : ;
flags gcc CFLAGS <optimization>speed : -O3 ;
# Other optimizations we might want for GCC
@@ -125,8 +125,8 @@
}
case *BSD :
{
- flags gcc CFLAGS <threading>multi : -pthread ;
- flags gcc LINKFLAGS <threading>multi : -pthread ;
+ flags gcc CFLAGS <threading>multi : %%PTHREAD_CFLAGS%% ;
+ flags gcc LINKFLAGS <threading>multi : %%PTHREAD_LIBS%% ;
# there is no -lrt on BSD
}
case IRIX :

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,53 @@
#!/bin/sh
# Fix links to example files
cd ${WRKSRC}/libs && for dir in *; do
if [ -d $dir/doc ]; then
for file in $dir/doc/*; do
${GREP} -s -q '\.\./example/' $file && \
${REINPLACE_CMD} -e\
"s|../example/|${PREFIX}/share/examples/boost/$dir/|g" $file
done;
fi;
done;
# Install bjam tool
${BSD_INSTALL_PROGRAM} ${BJAM} ${PREFIX}/bin/
# Install libraries
${FIND} ${WRKSRC}/bin/boost/libs -type f -name "*.a"\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/lib \;
${FIND} ${WRKSRC}/bin/boost/libs -type f -name "*.so.1"\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/lib \;
# Create symlinks for shared libraries
cd ${PREFIX}/lib;
for i in libboost*.so.1; do
${LN} -s $i ${i%%.1};
done;
# Install headers
cd ${WRKSRC} && ${FIND} boost -type d\
-exec ${MKDIR} ${PREFIX}/include/\{\} \;
cd ${WRKSRC} && ${FIND} boost -type f\
-exec ${BSD_INSTALL_DATA} \{\} ${PREFIX}/include/\{\} \;
# Documentation & examples
if [ -n ${NOPORTDOCS+xyz} ]; then
${MKDIR} ${DOCSDIR} ${EXAMPLESDIR}
${FIND} ${WRKSRC} -type f -exec chmod 0444 {} \;
cd ${WRKSRC} &&\
${FIND} . -name "*.htm" -o -name "*.html" -o -name "*.css"\
-o -name "*.jp*g" -o -name "*.png" -o -name "*.gif"\
| ${TAR} cTf - - | ${TAR} xUCf ${DOCSDIR} -
cd ${WRKSRC}/libs && for dir in *; do
if [ -d ${WRKSRC}/libs/${dir}/example ]; then
${MKDIR} ${EXAMPLESDIR}/${dir};
cd ${WRKSRC}/libs/${dir}/example && ${TAR} cf - * \
| ${TAR} xUCf ${EXAMPLESDIR}/${dir} -;
fi;
done;
fi;