baremetal fix
[openadk.git] / package / boost / Makefile
blob2add96f5ed087382ad6717730c6ecb51cdb49dd8
1 # This file is part of the OpenADK project. OpenADK is copyrighted
2 # material, please see the LICENCE file in the top-level directory.
4 include ${ADK_TOPDIR}/rules.mk
6 PKG_NAME:= boost
7 PKG_VERSION:= 1.67.0
8 PKG_EXTRAVER:= 1_67
9 PKG_RELEASE:= 1
10 PKG_HASH:= 8aa4e330c870ef50a896634c931adf468b21f8a69b77007e45c444151229f665
11 PKG_DESCR:= portable c++ library
12 PKG_SECTION:= libs/misc
13 PKG_BUILDDEP:= python2-host
14 PKG_NEEDS:= c++
15 PKG_URL:= http://www.boost.org/
16 PKG_SITES:= ${MASTER_SITE_SOURCEFORGE:=boost/}
17 PKG_OPTS:= dev
19 DISTFILES:= boost_$(PKG_EXTRAVER)_0.tar.gz
20 WRKDIST= ${WRKDIR}/${PKG_NAME}_$(PKG_EXTRAVER)_0
22 PKG_FLAVOURS_BOOST:= DATE_TIME GRAPH GRAPH_PARALLEL IOSTREAMS LOG MATH PROGRAM_OPTIONS PYTHON REGEX SERIALIZATION SIGNALS TEST WAVE
24 PKGFD_DATE_TIME:= with date-time
25 PKGFD_PYTHON:= with python
26 PKGFB_PYTHON:= python2
27 PKGFS_PYTHON:= python2
28 PKGFD_IOSTREAMS:= with iostreams
29 PKGFD_GRAPH:= with graph
30 PKGFD_GRAPH_PARALLEL:= with graph_parallel
31 PKGFD_MATH:= with math
32 PKGFD_LOG:= with log
33 PKGFD_PROGRAM_OPTIONS:= with program_options
34 PKGFD_REGEX:= with regex
35 PKGFD_SERIALIZATION:= with serialization
36 PKGFD_SIGNALS:= with signals
37 PKGFD_TEST:= with test
38 PKGFD_WAVE:= with wave
40 include ${ADK_TOPDIR}/mk/package.mk
42 $(eval $(call PKG_template,BOOST,boost,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},${PKG_OPTS}))
44 include ${ADK_TOPDIR}/mk/python.mk
46 CONFIG_STYLE:= manual
47 BUILD_STYLE:= manual
48 INSTALL_STYLE:= manual
50 CONFIGURE_ARGS+= --target=$(GNU_TARGET_NAME) \
51 --host=$(GNU_TARGET_NAME) \
52 --build=$(GNU_HOST_NAME) \
53 --prefix=${WRKINST}/usr \
54 --ignore-site-config \
55 --without-mpi \
56 --without-context \
57 --without-coroutine \
58 --without-locale
60 ifneq (${ADK_PACKAGE_BOOST_IOSTREAMS},)
61 CONFIGURE_ARGS+= -sNO_BZIP2=1 -sZLIB_INCLUDE=${STAGING_TARGET_DIR}/usr/include -sZLIB_LIBPATH=${STAGING_TARGET_DIR}/usr/lib
62 else
63 CONFIGURE_ARGS+= --without-iostreams
64 endif
65 ifeq (${ADK_PACKAGE_BOOST_DATE_TIME},)
66 CONFIGURE_ARGS+= --without-date_time
67 endif
68 ifeq (${ADK_PACKAGE_BOOST_PYTHON},)
69 CONFIGURE_ARGS+= --without-python
70 endif
71 ifeq (${ADK_PACKAGE_BOOST_GRAPH},)
72 CONFIGURE_ARGS+= --without-graph
73 endif
74 ifeq (${ADK_PACKAGE_BOOST_LOG},)
75 CONFIGURE_ARGS+= --without-log
76 endif
77 ifeq (${ADK_PACKAGE_BOOST_MATH},)
78 CONFIGURE_ARGS+= --without-math
79 endif
80 ifeq (${ADK_PACKAGE_BOOST_PROGRAM_OPTIONS},)
81 CONFIGURE_ARGS+= --without-program_options
82 endif
83 ifeq (${ADK_PACKAGE_BOOST_REGEX},)
84 CONFIGURE_ARGS+= --without-regex
85 endif
86 ifeq (${ADK_PACKAGE_BOOST_SERIALIZATION},)
87 CONFIGURE_ARGS+= --without-serialization
88 endif
89 ifeq (${ADK_PACKAGE_BOOST_SIGNALS},)
90 CONFIGURE_ARGS+= --without-signals
91 endif
92 ifeq (${ADK_PACKAGE_BOOST_TEST},)
93 CONFIGURE_ARGS+= --without-test
94 endif
95 ifeq (${ADK_PACKAGE_BOOST_WAVE},)
96 CONFIGURE_ARGS+= --without-wave
97 endif
99 ifeq ($(ADK_TARGET_ARCH),arm)
100 BOOST_ARCH:= architecture=arm
101 endif
102 ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32),y)
103 BOOST_ARCH:= architecture=mips32
104 endif
105 ifeq ($(ADK_TARGET_CPU_MIPS_MIPS32R2),y)
106 BOOST_ARCH:= architecture=mips32r2
107 endif
108 ifeq ($(ADK_TARGET_ARCH),mips64)
109 BOOST_ARCH:= architecture=mips64
110 endif
111 ifeq ($(ADK_TARGET_ARCH),ppc)
112 BOOST_ARCH:= architecture=power
113 endif
114 ifeq ($(ADK_TARGET_ARCH),sparc)
115 BOOST_ARCH:= architecture=sparc
116 endif
117 ifeq ($(ADK_TARGET_ARCH),x86_64)
118 BOOST_ARCH:= architecture=x86
119 endif
121 ifeq ($(ADK_TARGET_ARCH),arm)
122 BOOST_ABI:= abi=aapcs
123 endif
124 ifeq ($(ADK_TARGET_ARCH),mips)
125 BOOST_ABI:= abi=o32
126 endif
128 # some variables for build
129 GPP_PATH:= ${TOOLCHAIN_DIR}/usr/bin/${GNU_TARGET_NAME}-g++
130 GPP_VERSION:= "`${GPP_PATH} -v 2>&1 | tail -1 | awk '{print $$3}'`"
131 BJAM_PATH:= "`find ${WRKBUILD} -type f -name "bjam$(EXEEXT)"`"
132 PYTHON_PATH:= ${STAGING_HOST_DIR}/usr/bin/python
133 PYTHON_INCLUDE:="`find ${STAGING_TARGET_DIR}/usr/include/ -maxdepth 1 -type d -name "python*" | head -1`"
134 PYTHON_LIB:= "`find ${STAGING_TARGET_DIR}/usr/lib/ -maxdepth 1 -type d -name "python*" | head -1`"
135 USER_JAM:= ${WRKBUILD}/tools/build/user-config.jam
137 ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY)$(ADK_TARGET_BINFMT_FLAT),y)
138 LINKMODE:= static
139 else
140 LINKMODE:= shared
141 endif
143 pre-build:
144 @echo "build bjam..."
145 cd $(WRKBUILD)/tools/build/src/engine; ./build.sh gcc
147 do-build:
148 @echo "build boost library..."
149 echo "using gcc : ${GPP_VERSION} : ${GPP_PATH} : <compileflags>\"${TARGET_CFLAGS}\" ;" > ${USER_JAM};
150 ifneq (${ADK_PACKAGE_BOOST_PYTHON},)
151 echo "using python : ${PYTHON_VERSION} : ${PYTHON_PATH} : ${PYTHON_INCLUDE} : ${PYTHON_LIB} ;" >> ${USER_JAM};
152 endif
153 (cd ${WRKBUILD}; \
154 ${BJAM_PATH} \
155 -d 2 \
156 target-os=linux \
157 variant=release \
158 threading=multi \
159 link=$(LINKMODE) \
160 runtime-link=$(LINKMODE) \
161 $(BOOST_ARCH) \
162 $(BOOST_ABI) \
163 binary-format=elf \
164 toolset=gcc-${GPP_VERSION} \
165 --user-config=${USER_JAM} \
166 --layout=system \
167 --disable-long-double \
168 ${CONFIGURE_ARGS} \
169 install \
172 boost-install:
173 ${INSTALL_DIR} ${IDIR_BOOST}/usr/lib
174 ${CP} ${WRKINST}/usr/lib/*.so* ${IDIR_BOOST}/usr/lib
176 include ${ADK_TOPDIR}/mk/pkg-bottom.mk