--- /dev/null
+
+###########################################################################################
+#
+# Creates needed build system variables
+# ----------------------------------------------------------------------------------
+# Author : aurelien.morelle@parrot.com
+# Date : 2007/05/16
+#
+# Included from global Makefile
+#
+###########################################################################################
+
+ifndef ALL_TARGETS
+export ALL_TARGETS=../../Soft/Build/targets_versions
+endif
+
+ifeq ($(MAKECMDGOALS),check)
+ export QUIET_BUILD=no
+ export MAKEFLAGS=--no-print-directory
+endif
+
+ifeq ($(QUIET_BUILD),yes)
+ export MAKEFLAGS=-s --no-print-directory
+ GENERIC_COMMAND_PREFIX:=@$(GENERIC_COMMAND_PREFIX)
+ RM=@rm -rfv
+else
+ RM=rm -rf
+endif
+
+
+ifeq "$(RELEASE_BUILD)" "yes"
+ BUILD_MODE=PROD_MODE
+endif
+ifeq "$(RELEASE_BUILD)" "no"
+ BUILD_MODE=DEBUG_MODE
+endif
+
+
+ifeq ($(USE_NDS),yes)
+ export DEVKITARM=/usr/local/devkitARM-eabi_release_21/devkitARM
+ export DEVKITPRO=$(DEVKITARM)
+ OS_TARGET_ID=nds_$(NDS_CPU)
+ GNUTOOLS_PATH=$(DEVKITARM)/bin
+ GENERIC_COMMAND_PREFIX=$(GNUTOOLS_PATH)/arm-eabi-
+ ifeq ($(wildcard $(GNUTOOLS_PATH)),)
+ $(error ERROR Bad GNUTOOLS_PATH [ $(GNUTOOLS_PATH) does not exist ])
+ endif
+ ifeq ($(wildcard $(GENERIC_COMMAND_PREFIX)gcc),)
+ $(error ERROR Bad GENERIC_COMMAND_PREFIX [ $(GENERIC_COMMAND_PREFIX)gcc does not exist ])
+ endif
+else
+ ifeq ($(USE_MINGW32),yes)
+ OS_TARGET_ID=mingw32_gtk+-2.14.7
+ GENERIC_COMMAND_PREFIX=i586-mingw32msvc-
+ ifeq ($(shell which $(GENERIC_COMMAND_PREFIX)gcc 2> /dev/null),)
+ $(error ERROR You need Minimalist GNU Win32 cross compiler. (under Debian: apt-get install mingw32))
+ endif
+ else
+ ifeq ($(USE_ELINUX),yes)
+ OS_TARGET_ID=eLinux
+ TOOLCHAIN_PATH=/opt/$(TOOLCHAIN_VERSION)/bin
+ ifeq ($(TOOLCHAIN_VERSION),arm-eglibc)
+ GENERIC_COMMAND_PREFIX=$(TOOLCHAIN_PATH)/arm-none-linux-gnueabi-
+ else
+ ifeq ($(TOOLCHAIN_VERSION),arm-2010.09)
+ GENERIC_COMMAND_PREFIX=$(TOOLCHAIN_PATH)/arm-none-linux-gnueabi-
+ else
+ ifeq ($(TOOLCHAIN_VERSION),arm-uclibc)
+ GENERIC_COMMAND_PREFIX=$(TOOLCHAIN_PATH)/arm-linux-uclibcgnueabi-
+ else
+ $(error ERROR Unsupported toolchain.)
+ endif
+ endif
+ endif
+ else
+ ifeq ($(USE_IPHONE),yes)
+ OS_TARGET_ID=$(IPHONE_PLATFORM)
+ OS_TARGET_NAME:=$(OS_TARGET_ID)
+ OS_TARGET_NAME:=$(shell echo "$(OS_TARGET_NAME)" | sed -e "s/iphone/iPhone/g")
+ OS_TARGET_NAME:=$(shell echo "$(OS_TARGET_NAME)" | sed -e "s/os/OS/g")
+ OS_TARGET_NAME:=$(shell echo "$(OS_TARGET_NAME)" | sed -e "s/simulator/Simulator/g")
+ TOOLCHAIN_PATH=/Developer/Platforms/$(OS_TARGET_NAME).platform/Developer/usr/bin
+ GENERIC_COMMAND_PREFIX=$(TOOLCHAIN_PATH)/
+ else
+ OS_TARGET_ID=$(shell uname -sor | sed -e "s/[ \/]/_/g")
+ ifeq ($(USE_ANDROID),yes)
+ TOOLCHAIN_PATH=$(NDK_PATH)/build/prebuilt/linux-x86/$(TOOLCHAIN_VERSION)/bin
+ GENERIC_COMMAND_PREFIX=$(TOOLCHAIN_PATH)/arm-eabi-
+ else
+ GENERIC_COMMAND_PREFIX=
+ endif
+ endif
+ endif
+ endif
+endif
+
+GCC_VERSION=$(shell $(GENERIC_COMMAND_PREFIX)gcc -v 2>&1 | grep --color=never version | grep -v [cC]onfigur | sed -e "s/\(^version gcc \)\([^ ]*\)\(.*\)/\2/" | sed -e "s/\(^gcc version \)\([^ ]*\)\(.*\)/\2/")
+
+ifeq ($(USE_NDS),no)
+ifeq ($(USE_MINGW32),no)
+ifeq ($(USE_ELINUX), no)
+ ifneq ($(GCC_VERSION),4.3.3)
+# $(error GCC version not supported)
+ endif
+endif
+endif
+endif
+
+GCC_ID:=$(subst $(GNUTOOLS_PATH)/,,$(GENERIC_COMMAND_PREFIX))gcc_$(GCC_VERSION)
+
+ifneq ($(NO_COM),yes)
+ ifeq ($(USE_BLUEZ),yes)
+ COM_TARGET_ID=libbluetooth3
+ COM_TARGET_ID:=$(COM_TARGET_ID)_$(shell apt-cache show libbluetooth-dev | grep "^Version" | cut -d" " -f2 | head -n 1)
+ COM_TARGET_ID:=$(COM_TARGET_ID)_libiw
+ COM_TARGET_ID:=$(COM_TARGET_ID)_$(shell apt-cache show libiw-dev | grep "^Version" | cut -d" " -f2 | head -n 1)
+ endif
+endif
+
+ifeq ($(USE_BONJOUR),yes)
+ BONJOUR_TARGET_ID:=bonjour_$(BONJOUR_VERSION)
+ COM_TARGET_ID:=$(COM_TARGET_ID)_$(BONJOUR_TARGET_ID)
+endif
+
+ARCH_TARGET_ID=$(ARDRONE_TARGET_ARCH)
+PARROTOS_CORE_TARGET_ID:=parrotOS_core_$(COMMONSOFT_VERSION)
+PARROTOS_UTILS_TARGET_ID:=parrotOS_utils_$(COMMONSOFT_VERSION)
+PARROTOS_DRIVERS_TARGET_ID:=parrotOS_drivers_$(COMMONSOFT_VERSION)
+PARROTOS_DEVS_TARGET_ID:=parrotOS_devs_$(COMMONSOFT_VERSION)
+PARROTOS_CODEC_TARGET_ID:=parrotOS_codec_$(COMMONSOFT_VERSION)
+LIBPLF_TARGET_ID:=libplf_$(COMMONSOFT_VERSION)
+
+ifeq ($(USE_ARDRONELIB),yes)
+ ARDRONELIB_TARGET_ID=ardrone_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_ARDRONE_VISION),yes)
+ ARDRONE_VISION_TARGET_ID=vision_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_ARDRONE_POLARIS),yes)
+ ARDRONE_POLARIS_TARGET_ID=polaris_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_ARDRONE_VICON),yes)
+ ARDRONE_VICON_TARGET_ID=vicon_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_ARDRONE_TEST_BENCHS),yes)
+ ARDRONE_TEST_BENCHS_TARGET_ID=test_benchs_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_ARDRONE_CALIBRATION),yes)
+ ARDRONE_CALIBRATION_TARGET_ID=calibration_lib_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_SDK),yes)
+ SDK_TARGET_ID=sdk_$(BUILD_MODE)
+endif
+ifeq ($(USE_APP),yes)
+ APP_TARGET_ID:=$(APP_ID)_$(BUILD_MODE)
+endif
+ifeq ($(USE_DLL),yes)
+ DLL_TARGET_ID:=$(DLL_ID)_$(BUILD_MODE)
+endif
+ifeq ($(USE_LIB),yes)
+ LIB_TARGET_ID:=$(LIB_ID)_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_FFMPEG),yes)
+ CODEC_TARGET_ID=ffmpeg_$(FF_ARCH)
+else
+ifeq ($(USE_MJPEG),yes)
+ CODEC_TARGET_ID=mjpeg
+endif
+ifeq ($(USE_VLIB),yes)
+ CODEC_TARGET_ID=vlib
+endif
+endif
+
+ifeq ($(USE_ARDRONELIB),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONELIB_TARGET_ID:=$(ARDRONELIB_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONELIB_TARGET_ID:=$(ARDRONELIB_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONELIB_TARGET_ID:=$(ARDRONELIB_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_ARDRONE_VISION),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONE_VISION_TARGET_ID:=$(ARDRONE_VISION_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONE_VISION_TARGET_ID:=$(ARDRONE_VISION_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONE_VISION_TARGET_ID:=$(ARDRONE_VISION_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_ARDRONE_POLARIS),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONE_POLARIS_TARGET_ID:=$(ARDRONE_POLARIS_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONE_POLARIS_TARGET_ID:=$(ARDRONE_POLARIS_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONE_POLARIS_TARGET_ID:=$(ARDRONE_POLARIS_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_ARDRONE_VICON),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONE_VICON_TARGET_ID:=$(ARDRONE_VICON_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONE_VICON_TARGET_ID:=$(ARDRONE_VICON_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONE_VICON_TARGET_ID:=$(ARDRONE_VICON_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_ARDRONE_TEST_BENCHS),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONE_TEST_BENCHS_TARGET_ID:=$(ARDRONE_TEST_BENCHS_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONE_TEST_BENCHS_TARGET_ID:=$(ARDRONE_TEST_BENCHS_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONE_TEST_BENCHS_TARGET_ID:=$(ARDRONE_TEST_BENCHS_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_ARDRONE_CALIBRATION),yes)
+ifneq ($(COM_TARGET_ID),)
+ ARDRONE_CALIBRATION_TARGET_ID:=$(ARDRONE_CALIBRATION_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ ARDRONE_CALIBRATION_TARGET_ID:=$(ARDRONE_CALIBRATION_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ ARDRONE_CALIBRATION_TARGET_ID:=$(ARDRONE_CALIBRATION_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_JPEG),yes)
+ JPEG_TARGET_ID=jpeg-6b_$(BUILD_MODE)
+endif
+
+ifeq ($(USE_SDK),yes)
+ifneq ($(COM_TARGET_ID),)
+ SDK_TARGET_ID:=$(SDK_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ SDK_TARGET_ID:=$(SDK_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ SDK_TARGET_ID:=$(SDK_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_APP),yes)
+ifneq ($(COM_TARGET_ID),)
+ APP_TARGET_ID:=$(APP_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ APP_TARGET_ID:=$(APP_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ APP_TARGET_ID:=$(APP_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifeq ($(USE_LIB),yes)
+ifneq ($(COM_TARGET_ID),)
+ LIB_TARGET_ID:=$(LIB_TARGET_ID)_$(COM_TARGET_ID)
+endif
+ifneq ($(CODEC_TARGET_ID),)
+ LIB_TARGET_ID:=$(LIB_TARGET_ID)_$(CODEC_TARGET_ID)
+endif
+ifneq ($(ARCH_TARGET_ID),)
+ LIB_TARGET_ID:=$(LIB_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifneq ($(CODEC_TARGET_ID),)
+ CODEC_TARGET_ID:=$(CODEC_TARGET_ID)_$(BUILD_MODE)
+ifneq ($(ARCH_TARGET_ID),)
+ CODEC_TARGET_ID:=$(CODEC_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+ifneq ($(COM_TARGET_ID),)
+ COM_TARGET_ID:=$(COM_TARGET_ID)_$(BUILD_MODE)
+ifneq ($(ARCH_TARGET_ID),)
+ COM_TARGET_ID:=$(COM_TARGET_ID)_$(ARCH_TARGET_ID)
+endif
+endif
+
+ifneq ($(BONJOUR_TARGET_ID),)
+ BONJOUR_TARGET_ID:=$(BONJOUR_TARGET_ID)_$(BUILD_MODE)_$(_COM_TARGET_ID_)
+endif
+
+define ADD_OS_TARGET_ID
+ ifneq ($(1),OS)
+ $(1)_TARGET_ID:=$$($(1)_TARGET_ID)_$$(OS_TARGET_ID)
+ endif
+endef
+
+define FINALIZE_TARGET_ID
+ ifneq ($$($(1)_TARGET_ID),)
+ $(1)_TARGET_ID:=$$($(1)_TARGET_ID)_$$(GCC_ID)
+ $(1)_TARGET_DIR:=$$(ALL_TARGETS)/$$($(1)_TARGET_ID)
+ endif
+ export $(1)_TARGET_DIR
+endef
+
+TARGET_IDS:=OS APP DLL LIB SDK COM CODEC JPEG BONJOUR PARROTOS_CORE PARROTOS_UTILS PARROTOS_DRIVERS PARROTOS_DEVS PARROTOS_CODEC LIBPLF ARDRONE_VISION ARDRONE_POLARIS ARDRONE_TEST_BENCHS ARDRONE_CALIBRATION ARDRONELIB ARDRONE_VICON
+
+$(foreach id,$(filter-out OS,$(TARGET_IDS)),$(eval $(call ADD_OS_TARGET_ID,$(id))))
+$(foreach id,$(TARGET_IDS),$(eval $(call FINALIZE_TARGET_ID,$(id))))
+
+
+ifeq ($(USE_NDS),yes)
+ ifeq ($(NDS_CPU),ARM7)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ endif
+ ifeq ($(NDS_CPU),ARM9)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ endif
+else
+ ifeq ($(USE_ANDROID),yes)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ else
+ ifeq ($(USE_ELINUX),yes)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ else
+ ifeq ($(USE_IPHONE),yes)
+ ifeq ($(IPHONE_PLATFORM),iphoneos)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ else
+ TARGET_CPU_ARM=0
+ TARGET_CPU_X86=1
+ endif
+ else
+ ifeq ($(SBOX_UNAME_MACHINE),arm)
+ TARGET_CPU_ARM=1
+ TARGET_CPU_X86=0
+ else
+ TARGET_CPU_ARM=0
+ TARGET_CPU_X86=1
+ endif
+ endif
+ endif
+ endif
+endif
+
+# All that needs to be exported
+########################
+
+export MAKE
+export RM
+
+export GENERIC_COMMAND_PREFIX
+export GNUTOOLS_PATH
+export GCC_ID
+
+export BUILD_MODE
+
+export TARGET_CPU_ARM
+export TARGET_CPU_X86
+