Adding VALGRIND={ON,OFF} make option.

This commit is contained in:
Ruben Ayrapetyan
2015-02-16 13:58:22 +03:00
parent 26288b6b1b
commit 2667281745
4 changed files with 62 additions and 19 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
# Produced files
build/bin
build/obj
build/obj-*
build/tests
# IDE related files
+3 -7
View File
@@ -53,6 +53,8 @@ project (Jerry CXX C ASM)
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS )
# Determining platform and defining options
option(ENABLE_VALGRIND "Enable valgrind helpers in memory allocators" OFF)
set(PLATFORM "${CMAKE_SYSTEM_NAME}")
string(TOUPPER "${PLATFORM}" PLATFORM)
@@ -87,8 +89,7 @@ project (Jerry CXX C ASM)
COMPACT_PROFILE
COMPACT_PROFILE_MINIMAL
FULL_PROFILE
MEMORY_STATISTICS
VALGRIND)
MEMORY_STATISTICS)
# Profiles
# Full profile (default, so - no suffix)
@@ -103,11 +104,6 @@ project (Jerry CXX C ASM)
# Memory statistics
set(MODIFIER_SUFFIX_MEMORY_STATISTICS -mem_stats)
# Valgrind (TODO: make option)
# set(MODIFIER_SUFFIX_VALGRIND -valgrind)
# set(MODIFIER_DEFINES_VALGRIND DEFINES_JERRY_VALGRIND)
# set(MODIFIER_INCLUDE_VALGRIND INCLUDE_THIRD_PARTY_VALGRIND)
# Modifier lists
# Linux
set(MODIFIERS_LISTS_LINUX
+50 -10
View File
@@ -36,6 +36,14 @@
# Unit test target: unittests_run
#
# Options
# Valgrind
VALGRIND ?= OFF
ifneq ($(VALGRIND),ON)
VALGRIND := OFF
endif
export TARGET_DEBUG_MODES = debug
export TARGET_RELEASE_MODES = release
export TARGET_PC_SYSTEMS = linux
@@ -64,21 +72,53 @@ export CHECK_TARGETS = $(foreach __TARGET,$(JERRY_LINUX_TARGETS),$(__TARGET).che
export FLASH_TARGETS = $(foreach __TARGET,$(JERRY_STM32F3_TARGETS) $(JERRY_STM32F4_TARGETS),$(__TARGET).flash)
export OUT_DIR = ./build/bin
export BUILD_DIR = ./build/obj
export SHELL=/bin/bash
# Building all options combinations
OPTIONS_COMBINATIONS := $(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND-$(__OPTION))
# OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-{ANOTHER_OPTION}-$(__OPTION)))
# Building current options string
OPTIONS_STRING := -VALGRIND-$(VALGRIND)
# Build directories
BUILD_DIR_PREFIX := ./build/obj
# Native
BUILD_DIRS_NATIVE := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/native)
# stm32f3
BUILD_DIRS_STM32F3 := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/stm32f3)
# stm32f4
BUILD_DIRS_STM32F4 := $(foreach _OPTIONS_COMBINATION,$(OPTIONS_COMBINATIONS),$(BUILD_DIR_PREFIX)$(_OPTIONS_COMBINATION)/stm32f4)
# All together
BUILD_DIRS_ALL := $(BUILD_DIRS_NATIVE) $(BUILD_DIRS_STM32F3) $(BUILD_DIRS_STM32F4)
# Current
BUILD_DIR := ./build/obj$(OPTIONS_STRING)
all: precommit
$(BUILD_DIR)/native:
@ arch=`uname -p`; if [ "$$arch" == "armv7l" ]; then readelf -A /proc/self/exe | grep Tag_ABI_VFP_args && arch=$$arch"-hf" || arch=$$arch"-el"; fi; \
mkdir -p $(BUILD_DIR)/native && cd $(BUILD_DIR)/native && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log
$(BUILD_DIRS_NATIVE):
@ arch=`uname -p`; \
if [ "$$arch" == "armv7l" ]; \
then \
readelf -A /proc/self/exe | grep Tag_ABI_VFP_args && arch=$$arch"-hf" || arch=$$arch"-el";\
fi; \
mkdir -p $@ && \
cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log
$(BUILD_DIR)/stm32f3:
@ mkdir -p $(BUILD_DIR)/stm32f3 && cd $(BUILD_DIR)/stm32f3 && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log
$(BUILD_DIRS_STM32F3):
@ mkdir -p $@ && \
cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log
$(BUILD_DIR)/stm32f4:
@ mkdir -p $(BUILD_DIR)/stm32f4 && cd $(BUILD_DIR)/stm32f4 && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log
$(BUILD_DIRS_STM32F4):
@ mkdir -p $@ && \
cd $@ && \
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log
$(JERRY_LINUX_TARGETS): $(BUILD_DIR)/native
@ mkdir -p $(OUT_DIR)/$@
@@ -185,6 +225,6 @@ precommit: clean
# @$(MAKE) -s -f Makefile.mk TARGET=$@ $@
clean:
@ rm -rf $(BUILD_DIR) $(OUT_DIR)
@ rm -rf $(BUILD_DIRS_ALL) $(OUT_DIR)
.PHONY: clean build unittests_run
.PHONY: clean build unittests_run $(JERRY_TARGETS) $(FLASH_TARGETS)
+8 -1
View File
@@ -112,7 +112,14 @@ project (JerryCore CXX C ASM)
${SOURCE_CORE_PARSER_COLLECTIONS}
${SOURCE_CORE_PARSER_JS}
${SOURCE_CORE_JRT})
# Per-option configuration
# Valgrind
if("${ENABLE_VALGRIND}" STREQUAL "ON")
set(DEFINES_JERRY ${DEFINES_JERRY} ${DEFINES_JERRY_VALGRIND})
set(INCLUDE_CORE ${INCLUDE_CORE} ${INCLUDE_THIRD_PARTY_VALGRIND})
endif()
# Platform-specific configuration
set(DEFINES_JERRY ${DEFINES_JERRY} ${DEFINES_JERRY_${PLATFORM}})