X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=blobdiff_plain;f=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FVP_SDK%2FBuild%2FMakefile;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FVP_SDK%2FBuild%2FMakefile;h=b6c38b44423d717a2e4934826e0b5481589bf441;hp=0000000000000000000000000000000000000000;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2 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 index 0000000..b6c38b4 --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VP_SDK/Build/Makefile @@ -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 +########################################################################################### + ############################## +