aboutsummaryrefslogtreecommitdiffstats
path: root/devel/boost-libs/Makefile
blob: 8b0632e1359402a4de69be3e42b0aa114ba4ac3f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# Ports collection makefile for:  boost-libs
# Date Created:           30 April 2009
# Whom:               Alexander Churanov <churanov.port.maintainer@gmail.com>
#
# $FreeBSD$
#

PORTNAME=   boost-libs
COMMENT=    Free portable C++ libraries (without Boost.Python)
USE_BZIP2=  yes

BUILD_DEPENDS+= bjam:${PORTSDIR}/devel/boost-jam

OPTIONS=    VERBOSE_BUILD   "Show compiler messages"    off \
        DEBUG       "Build debugging symbols"   off \
        ICU     "Boost.Regex with ICU unicode support" on \
        OPTIMIZED_CFLAGS "Enable -O3 optimization"  off

BOOST_LIBS= date_time filesystem graph iostreams\
        math_c99 math_c99f math_tr1 math_tr1f\
        prg_exec_monitor program_options regex\
        serialization signals system thread unit_test_framework\
        wave wserialization

.include <bsd.port.pre.mk>
.include "${PORTSDIR}/devel/boost-all/common.mk"
.include "${PORTSDIR}/devel/boost-all/compiled.mk"

.if defined(WITH_ICU)
LIB_DEPENDS+=   icuuc:${PORTSDIR}/devel/icu
BJAM_OPTIONS+=  -sICU_PATH=${LOCALBASE}
.else
USE_ICONV=  yes
BJAM_OPTIONS+=  -sICONV_PATH=${LOCALBASE}
.endif

.if ${ARCH} == "sparc64"
BROKEN=     Does not compile on sparc64: invokes i386 assembler
.endif

post-patch: customize-boost-build
# Remove Boost.Python
    ${RM} -rf ${WRKSRC}/boost/python* ${WRKSRC}/libs/python
# Add symlink to help build system to find random_device.cpp
    ${LN} -s ${WRKSRC}/libs/random/src/random_device.cpp ${WRKSRC}/libs/random/random_device.cpp

do-build:
# build the library
    cd ${WRKSRC} && \
        ${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_OPTIONS} --prefix=${PREFIX}\
        --toolset=${BOOST_TOOLS}

# build bgl-viz library
    cd ${WRKSRC}/libs/graph/build && \
        ${SETENV} ${MAKE_ENV} ${BJAM} ${BJAM_OPTIONS} --prefix=${PREFIX}\
        --toolset=${BOOST_TOOLS}

# build random device code
    cd ${WRKSRC}/libs/random && \
    ${CXX} ${CXXCFLAGS} ${CFLAGS} -c -I${WRKSRC} random_device.cpp && \
    ${AR} rc ${WRKSRC}/bin.v2/libs/libboost_random.a random_device.o

do-install:
# Install libraries
    ${FIND} ${WRKSRC}/stage/lib -type f -name "*.a"\
        -exec ${INSTALL_DATA} \{\} ${PREFIX}/lib \;

    ${FIND} -E ${WRKSRC}/stage/lib -type f \
        -regex '.*so' \
        -exec ${INSTALL_DATA} \{\} ${PREFIX}/lib \;

# Create symlinks for shared libraries
.for lib in ${BOOST_LIBS}
    cd ${PREFIX}/lib && \
    ${MV} "libboost_${lib}.so" "libboost_${lib}.so.${BOOST_SHARED_LIB_VER}" && \
    ${LN} -fs "libboost_${lib}.so.${BOOST_SHARED_LIB_VER}" "libboost_${lib}.so"
.endfor

# Install headers
    cd ${WRKSRC} && \
    ${FIND} boost -type d -a \! -name "*.orig"\
        -exec ${MKDIR} ${PREFIX}/include/\{\} \;

    cd ${WRKSRC} && \
    ${FIND} boost -type f -a \! -name "*.orig"\
        -exec ${INSTALL_DATA} \{\} ${PREFIX}/include/\{\} \;

# display pkg-message
post-install:
    @${TOUCH} ${PKGMESSAGE}

    @${CAT} ${PKG_MESSAGE_FILE_THREADS} >> ${PKGMESSAGE}
    @${ECHO_CMD} >> ${PKGMESSAGE}

    @${REINPLACE_CMD} \
        -e "s|%%LOCALBASE%%|${LOCALBASE}|g" \
        -e "s|%%PTHREAD_LIBS%%|${PTHREAD_LIBS}|g" \
        -e "s|%%PYTHON_INCLUDEDIR%%|${PYTHON_INCLUDEDIR}|g" \
        -e "s|%%PYTHON_LIBDIR%%|${PYTHON_LIBDIR}|g" \
        -e "s|%%PYTHON_VERSION%%|${PYTHON_VERSION}|g" ${PKGMESSAGE}

    @if [ -s ${PKGMESSAGE} ]; then \
    ${ECHO_CMD} ; \
    ${ECHO_CMD} "===============================================================================" ; \
    ${ECHO_CMD} ; \
    ${CAT} ${PKGMESSAGE}; \
    ${ECHO_CMD} "===============================================================================" ; \
    ${ECHO_CMD} ; \
    fi

.include <bsd.port.post.mk>