Project import
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4a180d4 --- /dev/null +++ b/Makefile
@@ -0,0 +1,183 @@ +# +# Copyright (c) 2010-2012 Nest Labs, Inc. +# All rights reserved. +# +# This document is the property of Nest. It is considered +# confidential and proprietary information. +# +# This document may not be reproduced or transmitted in any form, +# in whole or in part, without the express written permission of +# Nest. +# +# Description: +# This file is the makefile for Boost, a collection of open +# source libraries that extend the functionality of the C++ standard +# library. +# + +BuildConfigSpecialized := No +BuildProductSpecialized := Yes + +include pre.mak + +# There's some dependency issues creating the tools and tools paths. +# Since boost uses it's only build system (bjam) anyway, not much +# to gain using parallel builds just for setting up bjam. +.NOTPARALLEL: + +PackageName := boost + +PackageExtension := tar.bz2 +PackageSeparator := _ + +PackagePatchArgs := -p1 + +PackageArchive := $(PackageName).$(PackageExtension) +PackageSourceDir := $(call GenerateBuildPaths,$(PackageName)$(PackageSeparator)$(PackageVersion)) + +CleanPaths += $(PackageLicenseFile) + +ICUSearchPath := $(ICUPath)/usr + +# For the short-term, we are always building with GCC even though the +# actual tool chain may be some repackaged version of GCC. So, just +# specify that. + +#BoostToolset := clang + +# We do not want versioned headers and libraries, so specify the +# 'system' layout. Also, we do not want all the various combinations +# of shared/static, release/debug, stripped/unstripped and +# non-threaded/threaded libraries, so just specify 'minimal'. + +BoostToolProduct-darwin := clang +BoostToolProduct-linux := gcc +# TODO COMSIM check if adding line below creates any issues +BoostToolProduct-freertos := gcc + +BoostToolProduct = $(BoostToolProduct-$(TargetOS)) + +BoostJamConfig += --layout=system \ + --build-type=minimal \ + -sICU_PATH=$(ICUSearchPath) \ + toolset=$(BoostToolProduct) \ + link=static \ + + +ifneq ($(CONFIG_OSM_HOST),1) +BoostLibraries = \ + date_time \ + filesystem \ + regex \ + system \ + test \ + thread \ + python \ + +else +BoostLibraries = filesystem system +endif + +BoostLibrariesList = $(subst $(Space),$(Comma),$(strip $(BoostLibraries))) + +BoostConfigure = $(call GenerateBuildPaths,bootstrap.sh) +BoostProjectConfig = $(call GenerateBuildPaths,project-config.jam) + +BoostBjamFiles = \ + bjam \ + boost-build.jam + +BoostBjamFilesSourcePath = $(BuildDirectory) +BoostBjamFilesResultPaths = $(call GenerateResultPaths,,$(BoostBjamFiles)) + +BoostBjamToolsSourcePath = $(call GenerateBuildPaths,tools) +BoostBjamToolsResultPath = $(call GenerateResultPaths,,tools) + +all: $(PackageDefaultGoal) + +# Generate the package license contents. + +$(PackageSourceDir)/LICENSE_1_0.txt: source + +$(PackageLicenseFile): $(PackageSourceDir)/LICENSE_1_0.txt + $(copy-result) + +# Extract the source from the archive and apply patches, if any. + +$(PackageSourceDir): $(PackageArchive) $(PackagePatchPaths) | $(BuildDirectory) + $(call expand-archive,$(PackageArchive),$(BuildDirectory)) + $(call patch-directory,$(@),$(PackagePatchArgs),$(PackagePatchPaths)) + $(Verbose)touch $(@) + +# Prepare the sources. + +.PHONY: source +source: | $(PackageSourceDir) + +# Patch the sources, if necessary. + +.PHONY: patch +patch: source + +# Generate the package build makefile. + +$(BoostConfigure): | $(PackageSourceDir) $(BuildDirectory) + $(call create-links,$(CURDIR)/$(PackageSourceDir),$(BuildDirectory)) + +# Generate the build-specific makefile and user configuration. We have +# to post-process the generated user configuration since Boost's +# adominable build system has no other way to override the actual C++ +# compiler executable used (see http://goodliffe.blogspot.com/2008/05/ +# cross-compiling-boost.html and boost/docs/html/bbv2/ +# tasks.html#bbv2.tasks.crosscompile). + +$(BoostProjectConfig): $(BoostConfigure) + $(Verbose)cd $(BuildDirectory) && \ + ./bootstrap.sh \ + --prefix=$(ResultDirectory) \ + --with-toolset=$(BoostToolset) \ + --with-icu=$(ICUSearchPath) \ + --with-libraries=$(BoostLibrariesList) \ + --with-python-root=$(PythonPath) + $(Verbose)$(SED) -e "s#^\([[:space:]]*using\)[[:space:]]\{1,\}\($(BoostToolset)\)[[:space:]]\{1,\};#\1 \2 : $(TargetProcArch) : $(CXX) $(CPPOPTFLAGS) ;#g" \ + < $(@) > $(@).N || $(RM) -f $(@) + $(Verbose)mv -f $(@) $(@).O + $(Verbose)mv -f $(@).N $(@) + +# Configure the source for building. + +.PHONY: configure +configure: source $(BoostProjectConfig) + +# Build the source. + +.PHONY: build +build: configure + $(Verbose)cd $(BuildDirectory) && \ + ./bjam $(BoostJamConfig) + +# Stage the build to a temporary installation area. + +.PHONY: stage +stage: stage-boost stage-bjam + +stage-boost: build | $(ResultDirectory) + $(Verbose)cd $(BuildDirectory) && \ + ./bjam $(BoostJamConfig) \ + install --prefix=$(ResultDirectory) + +.PHONY: stage-bjam +stage-bjam: $(BoostBjamFilesResultPaths) $(BoostBjamToolsResultPath) + +$(BoostBjamToolsResultPath): $(BoostBjamToolsSourcePath) + cp -rf $(BoostBjamToolsSourcePath) $(BoostBjamToolsResultPath) + +$(BoostBjamFilesResultPaths): $(call GenerateResultPaths,,%): $(call Slashify,$(BoostBjamFilesSourcePath))% + $(install-result) + +clean: + $(Verbose)$(RM) $(RMFLAGS) -r $(PackageSourceDir) + $(Verbose)$(RM) $(RMFLAGS) -r $(BuildDirectory)/* + $(Verbose)$(RM) $(RMFLAGS) -r $(ResultDirectory)/* + +include post.mak
diff --git a/boost.tar.bz2 b/boost.tar.bz2 new file mode 100644 index 0000000..43e4665 --- /dev/null +++ b/boost.tar.bz2 Binary files differ
diff --git a/boost.url b/boost.url new file mode 100644 index 0000000..75502b2 --- /dev/null +++ b/boost.url
@@ -0,0 +1 @@ +http://download.sourceforge.net/boost/boost_1_45_0.tar.bz2
diff --git a/boost.version b/boost.version new file mode 100644 index 0000000..1fda758 --- /dev/null +++ b/boost.version
@@ -0,0 +1 @@ +1_58_0