#!/bin/bash

set -eu

export scriptPath=$(echo $0 | sed "s|^\.\./|`pwd`/../|" | sed "s|^\./|`pwd`/|")
export baseDir=$(dirname ${scriptPath})
export bhDir=$(dirname ${baseDir})
export includeDir="${baseDir}/include/"
defaultArchive="naoqi-sdk-1.10.52-linux.tar.gz"

source "${includeDir}/bhumanBase.sh"

includesAlcommon="
include/alcommon/albroker.h \
include/alcommon/alconnectioninformation.h \
include/alcommon/alfunctionmonitoring.h \
include/alcommon/alfunctorcreate.h \
include/alcommon/alfunctor.h \
include/alcommon/alfunctorwithoutreturn.h \
include/alcommon/alfunctorwithreturn.h \
include/alcommon/almethodinfo.h \
include/alcommon/almodulecore.h \
include/alcommon/almodule.h \
include/alcommon/almoduleinfo.h \
include/alcommon/alparamtype.h \
include/alcommon/alpcall.h \
include/alcommon/alproxy.h \
include/alcommon/alproxy.hxx \
include/alcommon/alsharedclass.h \
include/alcommon/altaskmonitor.h \
include/alcore/alerror.h \
include/alcore/alptr.h \
include/alcore/altypes.h \
include/alfactory/alfactory.h \
include/alfactory/basetype.h \
include/alproxies/almemoryproxy.h \
include/alproxies/almemoryproxyposthandler.h \
include/alproxies/dcmproxy.h \
include/alproxies/dcmproxyposthandler.h \
include/althread/alcriticalsection.h \
include/althread/alcriticalsectionread.h \
include/althread/alcriticalsectionwrite.h \
include/althread/almutex.h \
include/althread/alprocesssignals.h \
include/althread/altask.h \
include/althread/althreadpool.h \
include/althread/althreadtypes.h \
include/altools/altimeval.h \
include/altools/alxplatform.h \
include/altools/tools.h \
include/alvalue/alfunctorconvert.h \
include/alvalue/alvalue.h \
"

includesBoost="
include/boost/aligned_storage.hpp \
include/boost/any.hpp \
include/boost/archive/archive_exception.hpp \
include/boost/archive/basic_archive.hpp \
include/boost/archive/basic_text_iarchive.hpp \
include/boost/archive/basic_text_iprimitive.hpp \
include/boost/archive/basic_text_oarchive.hpp \
include/boost/archive/basic_text_oprimitive.hpp \
include/boost/archive/detail/abi_prefix.hpp \
include/boost/archive/detail/abi_suffix.hpp \
include/boost/archive/detail/archive_pointer_iserializer.hpp \
include/boost/archive/detail/archive_pointer_oserializer.hpp \
include/boost/archive/detail/auto_link_archive.hpp \
include/boost/archive/detail/basic_iarchive.hpp \
include/boost/archive/detail/basic_iserializer.hpp \
include/boost/archive/detail/basic_oarchive.hpp \
include/boost/archive/detail/basic_oserializer.hpp \
include/boost/archive/detail/basic_pointer_iserializer.hpp \
include/boost/archive/detail/basic_pointer_oserializer.hpp \
include/boost/archive/detail/basic_serializer.hpp \
include/boost/archive/detail/common_iarchive.hpp \
include/boost/archive/detail/common_oarchive.hpp \
include/boost/archive/detail/decl.hpp \
include/boost/archive/detail/interface_iarchive.hpp \
include/boost/archive/detail/interface_oarchive.hpp \
include/boost/archive/detail/iserializer.hpp \
include/boost/archive/detail/oserializer.hpp \
include/boost/archive/detail/register_archive.hpp \
include/boost/archive/shared_ptr_helper.hpp \
include/boost/archive/text_iarchive.hpp \
include/boost/archive/text_oarchive.hpp \
include/boost/array.hpp \
include/boost/assert.hpp \
include/boost/bind/mem_fn_cc.hpp \
include/boost/bind/mem_fn_template.hpp \
include/boost/checked_delete.hpp \
include/boost/config/abi_prefix.hpp \
include/boost/config/abi_suffix.hpp \
include/boost/config/auto_link.hpp \
include/boost/config/compiler/gcc.hpp \
include/boost/config.hpp \
include/boost/config/no_tr1/cmath.hpp \
include/boost/config/no_tr1/functional.hpp \
include/boost/config/no_tr1/memory.hpp \
include/boost/config/no_tr1/utility.hpp \
include/boost/config/platform/linux.hpp \
include/boost/config/posix_features.hpp \
include/boost/config/select_compiler_config.hpp \
include/boost/config/select_platform_config.hpp \
include/boost/config/select_stdlib_config.hpp \
include/boost/config/stdlib/libstdcpp3.hpp \
include/boost/config/suffix.hpp \
include/boost/config/user.hpp \
include/boost/cstdint.hpp \
include/boost/current_function.hpp \
include/boost/detail/bad_weak_ptr.hpp \
include/boost/detail/indirect_traits.hpp \
include/boost/detail/iterator.hpp \
include/boost/detail/lightweight_mutex.hpp \
include/boost/detail/lwm_pthreads.hpp \
include/boost/detail/no_exceptions_support.hpp \
include/boost/detail/reference_content.hpp \
include/boost/detail/shared_count.hpp \
include/boost/detail/sp_convertible.hpp \
include/boost/detail/sp_counted_base_gcc_x86.hpp \
include/boost/detail/sp_counted_base.hpp \
include/boost/detail/sp_counted_impl.hpp \
include/boost/detail/spinlock.hpp \
include/boost/detail/spinlock_pool.hpp \
include/boost/detail/spinlock_sync.hpp \
include/boost/detail/sp_typeinfo.hpp \
include/boost/detail/workaround.hpp \
include/boost/detail/yield_k.hpp \
include/boost/enable_shared_from_this.hpp \
include/boost/exception/exception.hpp \
include/boost/function/detail/function_iterate.hpp \
include/boost/function/detail/maybe_include.hpp \
include/boost/function/detail/prologue.hpp \
include/boost/function_equal.hpp \
include/boost/function/function0.hpp \
include/boost/function/function10.hpp \
include/boost/function/function1.hpp \
include/boost/function/function2.hpp \
include/boost/function/function3.hpp \
include/boost/function/function4.hpp \
include/boost/function/function5.hpp \
include/boost/function/function6.hpp \
include/boost/function/function7.hpp \
include/boost/function/function8.hpp \
include/boost/function/function9.hpp \
include/boost/function/function_base.hpp \
include/boost/function/function_fwd.hpp \
include/boost/function/function_template.hpp \
include/boost/function.hpp \
include/boost/get_pointer.hpp \
include/boost/implicit_cast.hpp \
include/boost/intrusive_ptr.hpp \
include/boost/io_fwd.hpp \
include/boost/io/ios_state.hpp \
include/boost/iterator/detail/config_def.hpp \
include/boost/iterator/detail/config_undef.hpp \
include/boost/iterator/detail/enable_if.hpp \
include/boost/iterator/detail/facade_iterator_category.hpp \
include/boost/iterator.hpp \
include/boost/iterator/interoperable.hpp \
include/boost/iterator/iterator_categories.hpp \
include/boost/iterator/iterator_facade.hpp \
include/boost/iterator/iterator_traits.hpp \
include/boost/last_value.hpp \
include/boost/limits.hpp \
include/boost/make_shared.hpp \
include/boost/mem_fn.hpp \
include/boost/memory_order.hpp \
include/boost/mpl/always.hpp \
include/boost/mpl/and.hpp \
include/boost/mpl/apply_fwd.hpp \
include/boost/mpl/apply.hpp \
include/boost/mpl/apply_wrap.hpp \
include/boost/mpl/arg_fwd.hpp \
include/boost/mpl/arg.hpp \
include/boost/mpl/assert.hpp \
include/boost/mpl/aux_/adl_barrier.hpp \
include/boost/mpl/aux_/arg_typedef.hpp \
include/boost/mpl/aux_/arity.hpp \
include/boost/mpl/aux_/arity_spec.hpp \
include/boost/mpl/aux_/begin_end_impl.hpp \
include/boost/mpl/aux_/common_name_wknd.hpp \
include/boost/mpl/aux_/comparison_op.hpp \
include/boost/mpl/aux_/config/adl.hpp \
include/boost/mpl/aux_/config/arrays.hpp \
include/boost/mpl/aux_/config/bcc.hpp \
include/boost/mpl/aux_/config/bind.hpp \
include/boost/mpl/aux_/config/compiler.hpp \
include/boost/mpl/aux_/config/ctps.hpp \
include/boost/mpl/aux_/config/dtp.hpp \
include/boost/mpl/aux_/config/eti.hpp \
include/boost/mpl/aux_/config/forwarding.hpp \
include/boost/mpl/aux_/config/gcc.hpp \
include/boost/mpl/aux_/config/has_apply.hpp \
include/boost/mpl/aux_/config/has_xxx.hpp \
include/boost/mpl/aux_/config/integral.hpp \
include/boost/mpl/aux_/config/intel.hpp \
include/boost/mpl/aux_/config/lambda.hpp \
include/boost/mpl/aux_/config/msvc.hpp \
include/boost/mpl/aux_/config/msvc_typename.hpp \
include/boost/mpl/aux_/config/nttp.hpp \
include/boost/mpl/aux_/config/overload_resolution.hpp \
include/boost/mpl/aux_/config/pp_counter.hpp \
include/boost/mpl/aux_/config/preprocessor.hpp \
include/boost/mpl/aux_/config/static_constant.hpp \
include/boost/mpl/aux_/config/ttp.hpp \
include/boost/mpl/aux_/config/use_preprocessed.hpp \
include/boost/mpl/aux_/config/workaround.hpp \
include/boost/mpl/aux_/empty_impl.hpp \
include/boost/mpl/aux_/full_lambda.hpp \
include/boost/mpl/aux_/has_apply.hpp \
include/boost/mpl/aux_/has_begin.hpp \
include/boost/mpl/aux_/has_tag.hpp \
include/boost/mpl/aux_/has_type.hpp \
include/boost/mpl/aux_/include_preprocessed.hpp \
include/boost/mpl/aux_/integral_wrapper.hpp \
include/boost/mpl/aux_/is_msvc_eti_arg.hpp \
include/boost/mpl/aux_/lambda_arity_param.hpp \
include/boost/mpl/aux_/lambda_spec.hpp \
include/boost/mpl/aux_/lambda_support.hpp \
include/boost/mpl/aux_/msvc_eti_base.hpp \
include/boost/mpl/aux_/msvc_never_true.hpp \
include/boost/mpl/aux_/msvc_type.hpp \
include/boost/mpl/aux_/na_assert.hpp \
include/boost/mpl/aux_/na_fwd.hpp \
include/boost/mpl/aux_/na.hpp \
include/boost/mpl/aux_/na_spec.hpp \
include/boost/mpl/aux_/nested_type_wknd.hpp \
include/boost/mpl/aux_/nttp_decl.hpp \
include/boost/mpl/aux_/numeric_cast_utils.hpp \
include/boost/mpl/aux_/numeric_op.hpp \
include/boost/mpl/aux_/preprocessed/gcc/and.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply_fwd.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply.hpp \
include/boost/mpl/aux_/preprocessed/gcc/apply_wrap.hpp \
include/boost/mpl/aux_/preprocessed/gcc/arg.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bind_fwd.hpp \
include/boost/mpl/aux_/preprocessed/gcc/bind.hpp \
include/boost/mpl/aux_/preprocessed/gcc/equal_to.hpp \
include/boost/mpl/aux_/preprocessed/gcc/full_lambda.hpp \
include/boost/mpl/aux_/preprocessed/gcc/greater_equal.hpp \
include/boost/mpl/aux_/preprocessed/gcc/greater.hpp \
include/boost/mpl/aux_/preprocessed/gcc/less.hpp \
include/boost/mpl/aux_/preprocessed/gcc/list.hpp \
include/boost/mpl/aux_/preprocessed/gcc/or.hpp \
include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp \
include/boost/mpl/aux_/preprocessed/gcc/quote.hpp \
include/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp \
include/boost/mpl/aux_/preprocessor/def_params_tail.hpp \
include/boost/mpl/aux_/preprocessor/enum.hpp \
include/boost/mpl/aux_/preprocessor/params.hpp \
include/boost/mpl/aux_/static_cast.hpp \
include/boost/mpl/aux_/template_arity_fwd.hpp \
include/boost/mpl/aux_/template_arity.hpp \
include/boost/mpl/aux_/traits_lambda_spec.hpp \
include/boost/mpl/aux_/type_wrapper.hpp \
include/boost/mpl/aux_/value_wknd.hpp \
include/boost/mpl/aux_/yes_no.hpp \
include/boost/mpl/begin_end_fwd.hpp \
include/boost/mpl/begin_end.hpp \
include/boost/mpl/bind_fwd.hpp \
include/boost/mpl/bind.hpp \
include/boost/mpl/bool_fwd.hpp \
include/boost/mpl/bool.hpp \
include/boost/mpl/clear_fwd.hpp \
include/boost/mpl/deref.hpp \
include/boost/mpl/empty_fwd.hpp \
include/boost/mpl/empty.hpp \
include/boost/mpl/equal_to.hpp \
include/boost/mpl/eval_if.hpp \
include/boost/mpl/front_fwd.hpp \
include/boost/mpl/greater_equal.hpp \
include/boost/mpl/greater.hpp \
include/boost/mpl/has_xxx.hpp \
include/boost/mpl/identity.hpp \
include/boost/mpl/if.hpp \
include/boost/mpl/integral_c_fwd.hpp \
include/boost/mpl/integral_c.hpp \
include/boost/mpl/integral_c_tag.hpp \
include/boost/mpl/int_fwd.hpp \
include/boost/mpl/int.hpp \
include/boost/mpl/iterator_tags.hpp \
include/boost/mpl/lambda_fwd.hpp \
include/boost/mpl/lambda.hpp \
include/boost/mpl/less.hpp \
include/boost/mpl/limits/arity.hpp \
include/boost/mpl/limits/list.hpp \
include/boost/mpl/list/aux_/begin_end.hpp \
include/boost/mpl/list/aux_/clear.hpp \
include/boost/mpl/list/aux_/empty.hpp \
include/boost/mpl/list/aux_/front.hpp \
include/boost/mpl/list/aux_/include_preprocessed.hpp \
include/boost/mpl/list/aux_/item.hpp \
include/boost/mpl/list/aux_/iterator.hpp \
include/boost/mpl/list/aux_/O1_size.hpp \
include/boost/mpl/list/aux_/pop_front.hpp \
include/boost/mpl/list/aux_/preprocessed/plain/list10.hpp \
include/boost/mpl/list/aux_/preprocessed/plain/list20.hpp \
include/boost/mpl/list/aux_/push_back.hpp \
include/boost/mpl/list/aux_/push_front.hpp \
include/boost/mpl/list/aux_/size.hpp \
include/boost/mpl/list/aux_/tag.hpp \
include/boost/mpl/list.hpp \
include/boost/mpl/list/list0.hpp \
include/boost/mpl/list/list10.hpp \
include/boost/mpl/list/list20.hpp \
include/boost/mpl/long_fwd.hpp \
include/boost/mpl/long.hpp \
include/boost/mpl/next.hpp \
include/boost/mpl/next_prior.hpp \
include/boost/mpl/not.hpp \
include/boost/mpl/numeric_cast.hpp \
include/boost/mpl/O1_size_fwd.hpp \
include/boost/mpl/or.hpp \
include/boost/mpl/placeholders.hpp \
include/boost/mpl/pop_front_fwd.hpp \
include/boost/mpl/protect.hpp \
include/boost/mpl/push_back_fwd.hpp \
include/boost/mpl/push_front_fwd.hpp \
include/boost/mpl/quote.hpp \
include/boost/mpl/sequence_tag_fwd.hpp \
include/boost/mpl/sequence_tag.hpp \
include/boost/mpl/size_fwd.hpp \
include/boost/mpl/size_t_fwd.hpp \
include/boost/mpl/size_t.hpp \
include/boost/mpl/tag.hpp \
include/boost/mpl/void_fwd.hpp \
include/boost/mpl/void.hpp \
include/boost/next_prior.hpp \
include/boost/noncopyable.hpp \
include/boost/none.hpp \
include/boost/none_t.hpp \
include/boost/operators.hpp \
include/boost/optional.hpp \
include/boost/optional/optional_fwd.hpp \
include/boost/optional/optional.hpp \
include/boost/preprocessor/arithmetic/add.hpp \
include/boost/preprocessor/arithmetic/dec.hpp \
include/boost/preprocessor/arithmetic/detail/div_base.hpp \
include/boost/preprocessor/arithmetic/inc.hpp \
include/boost/preprocessor/arithmetic/mod.hpp \
include/boost/preprocessor/arithmetic/sub.hpp \
include/boost/preprocessor/array/data.hpp \
include/boost/preprocessor/array/elem.hpp \
include/boost/preprocessor/array/size.hpp \
include/boost/preprocessor/cat.hpp \
include/boost/preprocessor/comma_if.hpp \
include/boost/preprocessor/comparison/greater.hpp \
include/boost/preprocessor/comparison/less_equal.hpp \
include/boost/preprocessor/comparison/less.hpp \
include/boost/preprocessor/comparison/not_equal.hpp \
include/boost/preprocessor/config/config.hpp \
include/boost/preprocessor/control/deduce_d.hpp \
include/boost/preprocessor/control/detail/while.hpp \
include/boost/preprocessor/control/expr_iif.hpp \
include/boost/preprocessor/control/if.hpp \
include/boost/preprocessor/control/iif.hpp \
include/boost/preprocessor/control/while.hpp \
include/boost/preprocessor/debug/error.hpp \
include/boost/preprocessor/detail/auto_rec.hpp \
include/boost/preprocessor/detail/check.hpp \
include/boost/preprocessor/detail/is_binary.hpp \
include/boost/preprocessor/empty.hpp \
include/boost/preprocessor/enum.hpp \
include/boost/preprocessor/enum_params.hpp \
include/boost/preprocessor/facilities/empty.hpp \
include/boost/preprocessor/facilities/identity.hpp \
include/boost/preprocessor/identity.hpp \
include/boost/preprocessor/inc.hpp \
include/boost/preprocessor/iterate.hpp \
include/boost/preprocessor/iteration/detail/bounds/lower1.hpp \
include/boost/preprocessor/iteration/detail/bounds/upper1.hpp \
include/boost/preprocessor/iteration/detail/iter/forward1.hpp \
include/boost/preprocessor/iteration/iterate.hpp \
include/boost/preprocessor/list/adt.hpp \
include/boost/preprocessor/list/append.hpp \
include/boost/preprocessor/list/detail/fold_left.hpp \
include/boost/preprocessor/list/detail/fold_right.hpp \
include/boost/preprocessor/list/fold_left.hpp \
include/boost/preprocessor/list/fold_right.hpp \
include/boost/preprocessor/list/for_each_i.hpp \
include/boost/preprocessor/list/reverse.hpp \
include/boost/preprocessor/list/transform.hpp \
include/boost/preprocessor/logical/and.hpp \
include/boost/preprocessor/logical/bitand.hpp \
include/boost/preprocessor/logical/bool.hpp \
include/boost/preprocessor/logical/compl.hpp \
include/boost/preprocessor/logical/not.hpp \
include/boost/preprocessor/punctuation/comma.hpp \
include/boost/preprocessor/punctuation/comma_if.hpp \
include/boost/preprocessor/repeat.hpp \
include/boost/preprocessor/repetition/detail/for.hpp \
include/boost/preprocessor/repetition/enum_binary_params.hpp \
include/boost/preprocessor/repetition/enum.hpp \
include/boost/preprocessor/repetition/enum_params.hpp \
include/boost/preprocessor/repetition/for.hpp \
include/boost/preprocessor/repetition/repeat_from_to.hpp \
include/boost/preprocessor/repetition/repeat.hpp \
include/boost/preprocessor/seq/cat.hpp \
include/boost/preprocessor/seq/elem.hpp \
include/boost/preprocessor/seq/fold_left.hpp \
include/boost/preprocessor/seq/seq.hpp \
include/boost/preprocessor/seq/size.hpp \
include/boost/preprocessor/seq/transform.hpp \
include/boost/preprocessor/slot/detail/def.hpp \
include/boost/preprocessor/slot/detail/shared.hpp \
include/boost/preprocessor/slot/slot.hpp \
include/boost/preprocessor/stringize.hpp \
include/boost/preprocessor/tuple/eat.hpp \
include/boost/preprocessor/tuple/elem.hpp \
include/boost/preprocessor/tuple/rem.hpp \
include/boost/preprocessor/tuple/to_list.hpp \
include/boost/ref.hpp \
include/boost/scoped_array.hpp \
include/boost/scoped_ptr.hpp \
include/boost/serialization/access.hpp \
include/boost/serialization/array.hpp \
include/boost/serialization/assume_abstract.hpp \
include/boost/serialization/base_object.hpp \
include/boost/serialization/collection_size_type.hpp \
include/boost/serialization/collections_load_imp.hpp \
include/boost/serialization/collections_save_imp.hpp \
include/boost/serialization/collection_traits.hpp \
include/boost/serialization/config.hpp \
include/boost/serialization/detail/get_data.hpp \
include/boost/serialization/detail/shared_count_132.hpp \
include/boost/serialization/detail/shared_ptr_132.hpp \
include/boost/serialization/detail/stack_constructor.hpp \
include/boost/serialization/extended_type_info.hpp \
include/boost/serialization/extended_type_info_typeid.hpp \
include/boost/serialization/factory.hpp \
include/boost/serialization/force_include.hpp \
include/boost/serialization/level_enum.hpp \
include/boost/serialization/level.hpp \
include/boost/serialization/nvp.hpp \
include/boost/serialization/pfto.hpp \
include/boost/serialization/serialization.hpp \
include/boost/serialization/shared_ptr_132.hpp \
include/boost/serialization/singleton.hpp \
include/boost/serialization/smart_cast.hpp \
include/boost/serialization/split_free.hpp \
include/boost/serialization/split_member.hpp \
include/boost/serialization/static_warning.hpp \
include/boost/serialization/string.hpp \
include/boost/serialization/strong_typedef.hpp \
include/boost/serialization/throw_exception.hpp \
include/boost/serialization/tracking_enum.hpp \
include/boost/serialization/tracking.hpp \
include/boost/serialization/traits.hpp \
include/boost/serialization/type_info_implementation.hpp \
include/boost/serialization/vector.hpp \
include/boost/serialization/version.hpp \
include/boost/serialization/void_cast_fwd.hpp \
include/boost/serialization/void_cast.hpp \
include/boost/serialization/wrapper.hpp \
include/boost/shared_array.hpp \
include/boost/shared_ptr.hpp \
include/boost/signal.hpp \
include/boost/signals/connection.hpp \
include/boost/signals/detail/config.hpp \
include/boost/signals/detail/named_slot_map.hpp \
include/boost/signals/detail/signal_base.hpp \
include/boost/signals/detail/signals_common.hpp \
include/boost/signals/detail/slot_call_iterator.hpp \
include/boost/signals/signal0.hpp \
include/boost/signals/signal10.hpp \
include/boost/signals/signal1.hpp \
include/boost/signals/signal2.hpp \
include/boost/signals/signal3.hpp \
include/boost/signals/signal4.hpp \
include/boost/signals/signal5.hpp \
include/boost/signals/signal6.hpp \
include/boost/signals/signal7.hpp \
include/boost/signals/signal8.hpp \
include/boost/signals/signal9.hpp \
include/boost/signals/signal_template.hpp \
include/boost/signals/slot.hpp \
include/boost/signals/trackable.hpp \
include/boost/smart_ptr.hpp \
include/boost/static_assert.hpp \
include/boost/throw_exception.hpp \
include/boost/type.hpp \
include/boost/type_traits/add_const.hpp \
include/boost/type_traits/add_cv.hpp \
include/boost/type_traits/add_pointer.hpp \
include/boost/type_traits/add_reference.hpp \
include/boost/type_traits/add_volatile.hpp \
include/boost/type_traits/aligned_storage.hpp \
include/boost/type_traits/alignment_of.hpp \
include/boost/type_traits/broken_compiler_spec.hpp \
include/boost/type_traits/composite_traits.hpp \
include/boost/type_traits/config.hpp \
include/boost/type_traits/conversion_traits.hpp \
include/boost/type_traits/decay.hpp \
include/boost/type_traits/detail/bool_trait_def.hpp \
include/boost/type_traits/detail/bool_trait_undef.hpp \
include/boost/type_traits/detail/cv_traits_impl.hpp \
include/boost/type_traits/detail/false_result.hpp \
include/boost/type_traits/detail/ice_and.hpp \
include/boost/type_traits/detail/ice_eq.hpp \
include/boost/type_traits/detail/ice_not.hpp \
include/boost/type_traits/detail/ice_or.hpp \
include/boost/type_traits/detail/is_function_ptr_helper.hpp \
include/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp \
include/boost/type_traits/detail/size_t_trait_def.hpp \
include/boost/type_traits/detail/size_t_trait_undef.hpp \
include/boost/type_traits/detail/template_arity_spec.hpp \
include/boost/type_traits/detail/type_trait_def.hpp \
include/boost/type_traits/detail/type_trait_undef.hpp \
include/boost/type_traits/detail/yes_no_type.hpp \
include/boost/type_traits/extent.hpp \
include/boost/type_traits/floating_point_promotion.hpp \
include/boost/type_traits/function_traits.hpp \
include/boost/type_traits/has_nothrow_assign.hpp \
include/boost/type_traits/has_nothrow_constructor.hpp \
include/boost/type_traits/has_nothrow_copy.hpp \
include/boost/type_traits/has_nothrow_destructor.hpp \
include/boost/type_traits/has_trivial_assign.hpp \
include/boost/type_traits/has_trivial_constructor.hpp \
include/boost/type_traits/has_trivial_copy.hpp \
include/boost/type_traits/has_trivial_destructor.hpp \
include/boost/type_traits/has_virtual_destructor.hpp \
include/boost/type_traits.hpp \
include/boost/type_traits/ice.hpp \
include/boost/type_traits/integral_constant.hpp \
include/boost/type_traits/integral_promotion.hpp \
include/boost/type_traits/intrinsics.hpp \
include/boost/type_traits/is_abstract.hpp \
include/boost/type_traits/is_arithmetic.hpp \
include/boost/type_traits/is_array.hpp \
include/boost/type_traits/is_base_and_derived.hpp \
include/boost/type_traits/is_base_of.hpp \
include/boost/type_traits/is_class.hpp \
include/boost/type_traits/is_complex.hpp \
include/boost/type_traits/is_compound.hpp \
include/boost/type_traits/is_const.hpp \
include/boost/type_traits/is_convertible.hpp \
include/boost/type_traits/is_empty.hpp \
include/boost/type_traits/is_enum.hpp \
include/boost/type_traits/is_float.hpp \
include/boost/type_traits/is_floating_point.hpp \
include/boost/type_traits/is_function.hpp \
include/boost/type_traits/is_fundamental.hpp \
include/boost/type_traits/is_integral.hpp \
include/boost/type_traits/is_member_function_pointer.hpp \
include/boost/type_traits/is_member_object_pointer.hpp \
include/boost/type_traits/is_member_pointer.hpp \
include/boost/type_traits/is_object.hpp \
include/boost/type_traits/is_pod.hpp \
include/boost/type_traits/is_pointer.hpp \
include/boost/type_traits/is_polymorphic.hpp \
include/boost/type_traits/is_reference.hpp \
include/boost/type_traits/is_same.hpp \
include/boost/type_traits/is_scalar.hpp \
include/boost/type_traits/is_signed.hpp \
include/boost/type_traits/is_stateless.hpp \
include/boost/type_traits/is_union.hpp \
include/boost/type_traits/is_unsigned.hpp \
include/boost/type_traits/is_void.hpp \
include/boost/type_traits/is_volatile.hpp \
include/boost/type_traits/make_signed.hpp \
include/boost/type_traits/make_unsigned.hpp \
include/boost/type_traits/promote.hpp \
include/boost/type_traits/rank.hpp \
include/boost/type_traits/remove_all_extents.hpp \
include/boost/type_traits/remove_bounds.hpp \
include/boost/type_traits/remove_const.hpp \
include/boost/type_traits/remove_cv.hpp \
include/boost/type_traits/remove_extent.hpp \
include/boost/type_traits/remove_pointer.hpp \
include/boost/type_traits/remove_reference.hpp \
include/boost/type_traits/remove_volatile.hpp \
include/boost/type_traits/type_with_alignment.hpp \
include/boost/utility/addressof.hpp \
include/boost/utility/base_from_member.hpp \
include/boost/utility/binary.hpp \
include/boost/utility/compare_pointees.hpp \
include/boost/utility/enable_if.hpp \
include/boost/utility.hpp \
include/boost/visit_each.hpp \
include/boost/weak_ptr.hpp \
"

usage() {
  echo "usage:"
  echo "${0} <sdk-archive>"
  echo ""
  echo " <sdk-archive> : The archive file with the aldebaran linux sdk"
  exit 1
}

if [ $# -ne 1 ]
then
  usage
else
  archive=$1
fi

tmpdir="$(mktemp -d /tmp/bhuman.XXXXXX)"
archiveDir="${archive}"
archiveBase="$(dirname ${archiveDir})"
archiveDir="${archiveDir#${archiveBase}}"
archiveDir="${archiveDir#/}"
if [ "${defaultArchive}" != "${archiveDir}" ]
then
  warning "sdk-archive (\"${archiveDir}\") does not match the expected name (\"${defaultArchive}\")."
fi
archiveDir="${archiveDir%\.tar\.gz}"

debug "tempdir: " "${tmpdir}"
debug "archive: " "${archive}"
debug "archiveBase: " "${archiveBase}"
debug "archiveDir: " "${archiveDir}"

for f in ${includesAlcommon}
do
  alcommonIncludes+="${archiveDir}/${f} "
done

for f in ${includesBoost}
do
  boostIncludes+="${archiveDir}/${f} "
done

alcommonContent="${alcommonIncludes}${archiveDir}/lib/libalcommon.so"
echo -n "Unpacking required content..."
tar -xz -C "${tmpdir}" -f "${archive}" ${alcommonContent}
tar -xz -C "${tmpdir}" -f "${archive}" ${boostIncludes}
echo "Done"

echo -n "Copying alcommon headers to destination..."
mkdir -p "${baseDir}/../Util/alcommon/include" 
for f in ${includesAlcommon}
do
  destFile="${f#include/}"
  dirOfFile=$(dirname ${destFile})
  
  if [ ! -d "${baseDir}/../Util/alcommon/include/${dirOfFile}" ]
  then
    mkdir -p "${baseDir}/../Util/alcommon/include/${dirOfFile}"
  fi

  tr -d '\r' < "${tmpdir}/${archiveDir}/${f}" > "${baseDir}/../Util/alcommon/include/${destFile}"
done
echo "Done"

echo -n "Copying alcommon library to destination..."
mkdir -p "${baseDir}/../Util/alcommon/lib/linux" 
cp "${tmpdir}/${archiveDir}/lib/libalcommon.so" "${baseDir}/../Util/alcommon/lib/linux/libalcommon.so"
echo "Done"

echo -n "Copying boost headers to destination..."
for f in ${includesBoost}
do
  destFile="${f#include/}"
  dirOfFile=$(dirname ${destFile})
  
  debug "\tdestFile:  $destFile"
  debug "\tdirOfFile: $dirOfFile"

  if [ ! -d "${baseDir}/../Util/boost/linux/${dirOfFile}" ]
  then
    mkdir -p "${baseDir}/../Util/boost/linux/${dirOfFile}"
  fi
  tr -d '\r' < "${tmpdir}/${archiveDir}/${f}" > "${baseDir}/../Util/boost/linux/${destFile}"
done
echo "Done"

echo -n "Cleaning up..."
rm -r "${tmpdir}"
echo "Done"
