ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / Build / Makefile
diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Build/Makefile b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Build/Makefile
new file mode 100644 (file)
index 0000000..b6c38b4
--- /dev/null
@@ -0,0 +1,242 @@
+
+###########################################################################################
+#
+# Makefile called externally to build the SDK, alone or to be used in an application.
+# ----------------------------------------------------------------------------------
+# Author : aurelien.morelle@parrot.com
+# Date   : 2007/05/16
+#
+# Builds libraries and examples.
+#
+# Needs some variables to be passed for it to know what to do.
+# Variables definitions tests are done in varcontrol.makefile
+#
+###########################################################################################
+
+
+                               ##############################                              
+###########################################################################################
+# Variables definitions management
+###########################################################################################
+include varcontrol.makefile
+###########################################################################################
+                               ##############################                              
+
+
+#
+# At that point, following global variables are defined :
+# a : always / c : conditional
+
+#      (a) NO_COM
+#      (a) USE_BLUEZ
+#      (a) USE_SDK
+#      (a) RELEASE_BUILD
+
+#      (c) SDK_VERSION
+#      (c) PROJECT
+#      (c) FF_ARCH
+
+
+                               ##############################                              
+###########################################################################################
+# System variable definitions
+###########################################################################################
+include sysvar.makefile
+###########################################################################################
+                               ##############################                              
+
+
+#
+# At that point, following global variables are defined :
+# a : always / c : conditional
+
+#      (a) OS_TARGET_DIR
+#      (a) VLIB_TARGET_DIR
+#      (c) COM_TARGET_DIR
+#      (c) CODEC_TARGET_DIR
+#      (c) JPEG_TARGET_DIR
+#      (c) SDK_TARGET_DIR
+
+
+                               ##############################                              
+###########################################################################################
+# Main rules
+###########################################################################################
+
+TARGETS=vlib parrotOS_core parrotOS_utils parrotOS_drivers parrotOS_devs parrotOS_codec libplf sdk lib app
+
+define ADD_RULE_TEMPLATE
+  ifeq ($$(USE_$(shell echo $(1) | tr "a-z" "A-Z")),yes)
+    TO_BUILD+=build_$(1)
+  endif
+endef
+
+# Add rule for each target
+$(foreach target,$(TARGETS),$(eval $(call ADD_RULE_TEMPLATE,$(target))))
+
+.PHONY: $(foreach target,$(TARGETS),build_$(target) clean_$(target))
+
+all $(MAKECMDGOALS): $(TO_BUILD)
+       @if [ $(MAKECMDGOALS) ] && [ $(MAKECMDGOALS) = check ] ; then $(SDK_SOURCE_DIR)/Build/cvsstatus.sh $(SDK_SOURCE_DIR)/Build END ; fi
+
+before_check:
+       @if [ $(MAKECMDGOALS) ] && [ $(MAKECMDGOALS) = check ] ; then rm -rf *.log ; fi
+
+define GENERIC_RULES_TEMPLATE
+  ifneq ($(1),dll)
+    build_$(1): before_check
+       @$(MAKE) -f $(1).makefile $(MAKECMDGOALS)
+  endif
+endef
+
+build_dll: before_check
+       @$(MAKE) -f app.makefile $(MAKECMDGOALS)
+
+
+# Build rules for each target
+$(foreach target,$(TARGETS),$(eval $(call GENERIC_RULES_TEMPLATE,$(target))))
+###########################################################################################
+                               ##############################                              
+
+
+                               ##############################                              
+###########################################################################################
+# Update generic flags
+###########################################################################################
+FLAGS_FILTER_OUT=-O0 -O1 -O2 -O3 -Os -fno-rtti -frtti -fvtable-gc -Winline -Woverloaded-virtual -lstdc++
+ifneq ($(USE_RTMON),yes)
+  FLAGS_FILTER_OUT+=-g
+endif
+
+DEFINE_FLAGS=USE_WIFI USE_CAMIF USE_BASEBAND NO_COM USE_SERIAL USE_VLIB USE_MINGW32 USE_DLL USE_LINUX USE_ELINUX USE_PARROTOS_CORE USE_PARROTOS_UTILS USE_PARROTOS_DRIVERS USE_PARROTOS_DEVS USE_PARROTOS_CODEC USE_LIBPLF USE_BROADCOM USE_IWLIB USE_ANDROID
+
+
+ifeq ($(USE_ELINUX),yes)
+   include elinux.makefile
+else
+   GENERIC_CFLAGS+= -Wall
+endif
+
+ifeq ($(USE_LIBPLF),yes)
+   GENERIC_CFLAGS+= -DOS_LINUX
+endif
+
+GENERIC_CFLAGS+=-Wall 
+#-Werror -Wfatal-errors -Wno-unused-variable
+
+GENERIC_LDFLAGS+=-Wl,--warn-common
+
+ifeq ("$(BUILD_MODE)","PROD_MODE")
+  GENERIC_CFLAGS+=-O3 -DCOMPIL_MODE_PROD
+  GENERIC_CFLAGS:=$(filter-out -DNDEBUG,$(GENERIC_CFLAGS)) -DNDEBUG
+  GENERIC_LDFLAGS+=-O3
+  ifeq ($(USE_RTMON),yes)
+    GENERIC_CFLAGS+=-g
+    GENERIC_LDFLAGS+=-g
+  endif
+endif
+ifeq ("$(BUILD_MODE)","DEBUG_MODE")
+  GENERIC_CFLAGS+=-g -O0 -DDEBUG_MODE -DDEBUG -D_DEBUG
+  GENERIC_LDFLAGS+=-g -O0
+endif
+
+ifeq ($(USE_NDS),yes)
+    GENERIC_CFLAGS+=-D__NDS__ -DUSE_NDS
+    ifeq ($(NDS_CPU),ARM7)
+      GENERIC_CFLAGS+=-DARM7 -DSDK_ARM7 -mcpu=arm7tdmi -mtune=arm7tdmi
+      GENERIC_LDFLAGS+=-specs=ds_arm7.specs
+    endif
+    ifeq ($(NDS_CPU),ARM9)
+      GENERIC_CFLAGS+=-DARM9 -DSDK_ARM9 -mtune=arm9tdmi -march=armv5te
+      GENERIC_LDFLAGS+=-specs=ds_arm9.specs
+    endif
+    GENERIC_CFLAGS+=-fomit-frame-pointer -ffast-math
+    GENERIC_LDFLAGS+=-mno-fpu -Wl,-Map,.map
+else
+    ifeq ($(USE_ELINUX),yes)    
+      GENERIC_CFLAGS+=-D_ELINUX=$(USE_ELINUX) -D__elinux__ -D__ELINUX__ -DPARROT5
+      ifeq ($(PROCESSOR),ARM_CORTEX_A8)
+       ## Check http://processors.wiki.ti.com/index.php/Cortex-A8      
+       GENERIC_CFLAGS+=-march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp
+      endif
+      ifeq ($(PROCESSOR),ARM_926EJS)
+       ## Check http://www.codesourcery.com/sgpp/lite/arm/portal/kbentry26
+       GENERIC_CFLAGS+=-mcpu=arm926ej-s
+      endif
+    else
+            ifneq ($(USE_MINGW32),yes)
+                    GENERIC_CFLAGS+=-D__linux__
+               
+           ifeq ($(USE_IPHONE),yes)
+                       GENERIC_CFLAGS+=-D__MACOSX__ -std=gnu99
+                       ifeq ($(IPHONE_PLATFORM),iphoneos)
+                          GENERIC_CFLAGS+=-arch $(ARDRONE_TARGET_ARCH)
+                       else  
+                          GENERIC_CFLAGS+=-arch i386
+                       endif
+                    else  
+                       ifeq ($(USE_LINUX), yes)        
+                              GENERIC_CFLAGS+=-D__LINUX__
+              else
+                 ifeq ($(USE_ANDROID),yes)
+                                                 TARGET_arm_release_CFLAGS :=  -O2 \
+                                                               -fomit-frame-pointer \
+                                                               -fstrict-aliasing    \
+                                                               -funswitch-loops     \
+                                                               -finline-limit=300
+
+                                                 TARGET_arm_debug_CFLAGS := $(TARGET_arm_release_CFLAGS) \
+                                                               -fno-omit-frame-pointer \
+                                                               -fno-strict-aliasing
+
+                                                 GENERIC_CFLAGS+= $(TARGET_arm_debug_CFLAGS) \
+                                                                -fstack-protector \
+                                                                -fno-short-enums \
+                                                                -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ \
+                                                                -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__
+                 endif
+                       endif
+               endif
+        endif
+          endif
+endif
+
+GENERIC_CFLAGS+=-DTARGET_CPU_ARM=$(TARGET_CPU_ARM) -DTARGET_CPU_X86=$(TARGET_CPU_X86)
+
+ifeq ("$(USE_MEMPROT)","yes")
+  GENERIC_CFLAGS+=-fno-common -mlong-calls
+endif
+
+ifeq ("$(USE_PVSP)","yes")
+  GENERIC_CFLAGS+=-DBLUES_SUPPORT_PVSP_BLOCK
+endif
+
+ifeq ("$(USE_BONJOUR)","yes")
+  GENERIC_CFLAGS+=                             \
+       -DMDNS_DEBUGMSGS=0                      \
+       -DMDNS_LOG_ANSWER_SUPPRESSION_TIMES=0   \
+       -DCOMPILER_LIKES_PRAGMA_MARK=0          \
+       -DHAVE_IPV6=0                           \
+       -DUSES_NETLINK=0                        \
+       -DTARGET_OS_LINUX=1                     \
+       -DNOT_HAVE_DAEMON=1                     \
+       -Dsigset_t=cyg_uint32
+endif
+
+define ADD_DEFINE_FLAG_TEMPLATE
+  ifeq ($$($(1)),yes)
+    GENERIC_CFLAGS+=-D$(1)
+  endif
+endef
+
+# Add define flags
+$(foreach flag,$(DEFINE_FLAGS),$(eval $(call ADD_DEFINE_FLAG_TEMPLATE,$(flag))))
+
+# All that needs to be exported
+########################
+export GENERIC_CFLAGS
+export GENERIC_LDFLAGS
+export GENERIC_ARFLAGS=rcs
+###########################################################################################
+                               ##############################                              
+