Adding VALGRIND={ON,OFF} make option.
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
# Produced files
|
# Produced files
|
||||||
|
|
||||||
build/bin
|
build/bin
|
||||||
build/obj
|
build/obj-*
|
||||||
build/tests
|
build/tests
|
||||||
|
|
||||||
# IDE related files
|
# IDE related files
|
||||||
|
|||||||
+3
-7
@@ -53,6 +53,8 @@ project (Jerry CXX C ASM)
|
|||||||
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS )
|
set(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS )
|
||||||
|
|
||||||
# Determining platform and defining options
|
# Determining platform and defining options
|
||||||
|
option(ENABLE_VALGRIND "Enable valgrind helpers in memory allocators" OFF)
|
||||||
|
|
||||||
set(PLATFORM "${CMAKE_SYSTEM_NAME}")
|
set(PLATFORM "${CMAKE_SYSTEM_NAME}")
|
||||||
string(TOUPPER "${PLATFORM}" PLATFORM)
|
string(TOUPPER "${PLATFORM}" PLATFORM)
|
||||||
|
|
||||||
@@ -87,8 +89,7 @@ project (Jerry CXX C ASM)
|
|||||||
COMPACT_PROFILE
|
COMPACT_PROFILE
|
||||||
COMPACT_PROFILE_MINIMAL
|
COMPACT_PROFILE_MINIMAL
|
||||||
FULL_PROFILE
|
FULL_PROFILE
|
||||||
MEMORY_STATISTICS
|
MEMORY_STATISTICS)
|
||||||
VALGRIND)
|
|
||||||
|
|
||||||
# Profiles
|
# Profiles
|
||||||
# Full profile (default, so - no suffix)
|
# Full profile (default, so - no suffix)
|
||||||
@@ -103,11 +104,6 @@ project (Jerry CXX C ASM)
|
|||||||
# Memory statistics
|
# Memory statistics
|
||||||
set(MODIFIER_SUFFIX_MEMORY_STATISTICS -mem_stats)
|
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
|
# Modifier lists
|
||||||
# Linux
|
# Linux
|
||||||
set(MODIFIERS_LISTS_LINUX
|
set(MODIFIERS_LISTS_LINUX
|
||||||
|
|||||||
@@ -36,6 +36,14 @@
|
|||||||
# Unit test target: unittests_run
|
# Unit test target: unittests_run
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# Options
|
||||||
|
# Valgrind
|
||||||
|
VALGRIND ?= OFF
|
||||||
|
|
||||||
|
ifneq ($(VALGRIND),ON)
|
||||||
|
VALGRIND := OFF
|
||||||
|
endif
|
||||||
|
|
||||||
export TARGET_DEBUG_MODES = debug
|
export TARGET_DEBUG_MODES = debug
|
||||||
export TARGET_RELEASE_MODES = release
|
export TARGET_RELEASE_MODES = release
|
||||||
export TARGET_PC_SYSTEMS = linux
|
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 FLASH_TARGETS = $(foreach __TARGET,$(JERRY_STM32F3_TARGETS) $(JERRY_STM32F4_TARGETS),$(__TARGET).flash)
|
||||||
|
|
||||||
export OUT_DIR = ./build/bin
|
export OUT_DIR = ./build/bin
|
||||||
export BUILD_DIR = ./build/obj
|
|
||||||
|
|
||||||
export SHELL=/bin/bash
|
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
|
all: precommit
|
||||||
|
|
||||||
$(BUILD_DIR)/native:
|
$(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; \
|
@ arch=`uname -p`; \
|
||||||
mkdir -p $(BUILD_DIR)/native && cd $(BUILD_DIR)/native && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_linux_$$arch.cmake ../../.. &>cmake.log
|
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:
|
$(BUILD_DIRS_STM32F3):
|
||||||
@ mkdir -p $(BUILD_DIR)/stm32f3 && cd $(BUILD_DIR)/stm32f3 && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log
|
@ mkdir -p $@ && \
|
||||||
|
cd $@ && \
|
||||||
|
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. &>cmake.log
|
||||||
|
|
||||||
$(BUILD_DIR)/stm32f4:
|
$(BUILD_DIRS_STM32F4):
|
||||||
@ mkdir -p $(BUILD_DIR)/stm32f4 && cd $(BUILD_DIR)/stm32f4 && cmake -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log
|
@ mkdir -p $@ && \
|
||||||
|
cd $@ && \
|
||||||
|
cmake -DENABLE_VALGRIND=$(VALGRIND) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. &>cmake.log
|
||||||
|
|
||||||
$(JERRY_LINUX_TARGETS): $(BUILD_DIR)/native
|
$(JERRY_LINUX_TARGETS): $(BUILD_DIR)/native
|
||||||
@ mkdir -p $(OUT_DIR)/$@
|
@ mkdir -p $(OUT_DIR)/$@
|
||||||
@@ -185,6 +225,6 @@ precommit: clean
|
|||||||
# @$(MAKE) -s -f Makefile.mk TARGET=$@ $@
|
# @$(MAKE) -s -f Makefile.mk TARGET=$@ $@
|
||||||
|
|
||||||
clean:
|
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
@@ -112,7 +112,14 @@ project (JerryCore CXX C ASM)
|
|||||||
${SOURCE_CORE_PARSER_COLLECTIONS}
|
${SOURCE_CORE_PARSER_COLLECTIONS}
|
||||||
${SOURCE_CORE_PARSER_JS}
|
${SOURCE_CORE_PARSER_JS}
|
||||||
${SOURCE_CORE_JRT})
|
${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
|
# Platform-specific configuration
|
||||||
set(DEFINES_JERRY ${DEFINES_JERRY} ${DEFINES_JERRY_${PLATFORM}})
|
set(DEFINES_JERRY ${DEFINES_JERRY} ${DEFINES_JERRY_${PLATFORM}})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user