Makefile 5.0 KB

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