Add option to enable all-in-one build mode
Related issue: #626 JerryScript-DCO-1.0-Signed-off-by: Zsolt Borbély zsborbely.u-szeged@partner.samsung.com
This commit is contained in:
@@ -62,6 +62,7 @@ project (Jerry CXX C ASM)
|
|||||||
option(ENABLE_VALGRIND_FREYA "Enable valgrind-freya helpers in memory allocators" OFF)
|
option(ENABLE_VALGRIND_FREYA "Enable valgrind-freya helpers in memory allocators" OFF)
|
||||||
option(ENABLE_LTO "Enable LTO build" ON)
|
option(ENABLE_LTO "Enable LTO build" ON)
|
||||||
option(ENABLE_LOG "Enable LOG build" OFF)
|
option(ENABLE_LOG "Enable LOG build" OFF)
|
||||||
|
option(ENABLE_ALL_IN_ONE "Enable ALL_IN_ONE build" OFF)
|
||||||
|
|
||||||
if("${PLATFORM}" STREQUAL "LINUX")
|
if("${PLATFORM}" STREQUAL "LINUX")
|
||||||
set(PLATFORM_EXT "LINUX")
|
set(PLATFORM_EXT "LINUX")
|
||||||
|
|||||||
@@ -76,6 +76,12 @@
|
|||||||
LOG := OFF
|
LOG := OFF
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
# All-in-one build
|
||||||
|
ALL_IN_ONE ?= OFF
|
||||||
|
ifneq ($(ALL_IN_ONE),ON)
|
||||||
|
ALL_IN_ONE := OFF
|
||||||
|
endif
|
||||||
|
|
||||||
# Verbosity
|
# Verbosity
|
||||||
ifdef VERBOSE
|
ifdef VERBOSE
|
||||||
Q :=
|
Q :=
|
||||||
@@ -141,9 +147,10 @@ export SHELL=/bin/bash
|
|||||||
OPTIONS_COMBINATIONS := $(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND-$(__OPTION))
|
OPTIONS_COMBINATIONS := $(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND-$(__OPTION))
|
||||||
OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND_FREYA-$(__OPTION)))
|
OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-VALGRIND_FREYA-$(__OPTION)))
|
||||||
OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-LTO-$(__OPTION)))
|
OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-LTO-$(__OPTION)))
|
||||||
|
OPTIONS_COMBINATIONS := $(foreach __COMBINATION,$(OPTIONS_COMBINATIONS),$(foreach __OPTION,ON OFF,$(__COMBINATION)-ALL_IN_ONE-$(__OPTION)))
|
||||||
|
|
||||||
# Building current options string
|
# Building current options string
|
||||||
OPTIONS_STRING := -VALGRIND-$(VALGRIND)-VALGRIND_FREYA-$(VALGRIND_FREYA)-LTO-$(LTO)
|
OPTIONS_STRING := -VALGRIND-$(VALGRIND)-VALGRIND_FREYA-$(VALGRIND_FREYA)-LTO-$(LTO)-ALL_IN_ONE-$(ALL_IN_ONE)
|
||||||
|
|
||||||
# Build directories
|
# Build directories
|
||||||
BUILD_DIR_PREFIX := ./build/obj
|
BUILD_DIR_PREFIX := ./build/obj
|
||||||
@@ -190,6 +197,7 @@ $(BUILD_DIRS_NATIVE):
|
|||||||
-DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) \
|
-DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) \
|
||||||
-DENABLE_LOG=$(LOG) \
|
-DENABLE_LOG=$(LOG) \
|
||||||
-DENABLE_LTO=$(LTO) \
|
-DENABLE_LTO=$(LTO) \
|
||||||
|
-DENABLE_ALL_IN_ONE=$(ALL_IN_ONE) \
|
||||||
-DUSE_COMPILER_DEFAULT_LIBC=$(USE_COMPILER_DEFAULT_LIBC) \
|
-DUSE_COMPILER_DEFAULT_LIBC=$(USE_COMPILER_DEFAULT_LIBC) \
|
||||||
-DCMAKE_TOOLCHAIN_FILE=`cat toolchain.config` ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
-DCMAKE_TOOLCHAIN_FILE=`cat toolchain.config` ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
||||||
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;); \
|
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;); \
|
||||||
@@ -198,14 +206,14 @@ $(BUILD_DIRS_NATIVE):
|
|||||||
$(BUILD_DIRS_STM32F3): prerequisites
|
$(BUILD_DIRS_STM32F3): prerequisites
|
||||||
$(Q) mkdir -p $@
|
$(Q) mkdir -p $@
|
||||||
$(Q) cd $@ && \
|
$(Q) cd $@ && \
|
||||||
(cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) -DENABLE_LTO=$(LTO) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
(cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) -DENABLE_LTO=$(LTO) -DENABLE_ALL_IN_ONE=$(ALL_IN_ONE) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f3.cmake ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
||||||
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
||||||
|
|
||||||
.PHONY: $(BUILD_DIRS_STM32F4)
|
.PHONY: $(BUILD_DIRS_STM32F4)
|
||||||
$(BUILD_DIRS_STM32F4): prerequisites
|
$(BUILD_DIRS_STM32F4): prerequisites
|
||||||
$(Q) mkdir -p $@
|
$(Q) mkdir -p $@
|
||||||
$(Q) cd $@ && \
|
$(Q) cd $@ && \
|
||||||
(cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) -DENABLE_LTO=$(LTO) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
(cmake -DENABLE_VALGRIND=$(VALGRIND) -DENABLE_VALGRIND_FREYA=$(VALGRIND_FREYA) -DENABLE_LTO=$(LTO) -DENABLE_ALL_IN_ONE=$(ALL_IN_ONE) -DCMAKE_TOOLCHAIN_FILE=build/configs/toolchain_mcu_stm32f4.cmake ../../.. 2>&1 | tee cmake.log $(QLOG) ; ( exit $${PIPESTATUS[0]} ) ) || \
|
||||||
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
(echo "CMake run failed. See "`pwd`"/cmake.log for details."; exit 1;)
|
||||||
|
|
||||||
.PHONY: $(JERRY_NATIVE_TARGETS)
|
.PHONY: $(JERRY_NATIVE_TARGETS)
|
||||||
|
|||||||
@@ -135,8 +135,7 @@ project (JerryCore CXX C ASM)
|
|||||||
file(GLOB SOURCE_CORE_PARSER_REGEXP parser/regexp/*.cpp)
|
file(GLOB SOURCE_CORE_PARSER_REGEXP parser/regexp/*.cpp)
|
||||||
file(GLOB SOURCE_CORE_JRT jrt/*.cpp)
|
file(GLOB SOURCE_CORE_JRT jrt/*.cpp)
|
||||||
|
|
||||||
set(SOURCE_CORE
|
set(SOURCE_CORE_FILES
|
||||||
jerry.cpp
|
|
||||||
${SOURCE_CORE_API}
|
${SOURCE_CORE_API}
|
||||||
${SOURCE_CORE_LIT}
|
${SOURCE_CORE_LIT}
|
||||||
${SOURCE_CORE_RCS}
|
${SOURCE_CORE_RCS}
|
||||||
@@ -150,6 +149,21 @@ project (JerryCore CXX C ASM)
|
|||||||
${SOURCE_CORE_PARSER_REGEXP}
|
${SOURCE_CORE_PARSER_REGEXP}
|
||||||
${SOURCE_CORE_JRT})
|
${SOURCE_CORE_JRT})
|
||||||
|
|
||||||
|
# All-in-one build
|
||||||
|
if("${ENABLE_ALL_IN_ONE}" STREQUAL "ON")
|
||||||
|
set(ALL_IN_FILE "${CMAKE_BINARY_DIR}/jerry-all-in.cpp")
|
||||||
|
list(SORT SOURCE_CORE_FILES)
|
||||||
|
file(REMOVE ${ALL_IN_FILE})
|
||||||
|
|
||||||
|
foreach(FILE ${SOURCE_CORE_FILES})
|
||||||
|
file(APPEND ${ALL_IN_FILE} "#include \"${FILE}\"\n")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
set(SOURCE_CORE ${ALL_IN_FILE})
|
||||||
|
else()
|
||||||
|
set(SOURCE_CORE ${SOURCE_CORE_FILES})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Per-option configuration
|
# Per-option configuration
|
||||||
# Valgrind
|
# Valgrind
|
||||||
if("${ENABLE_VALGRIND}" STREQUAL "ON")
|
if("${ENABLE_VALGRIND}" STREQUAL "ON")
|
||||||
|
|||||||
@@ -53,7 +53,10 @@
|
|||||||
#undef ROUTINE_ARG_LIST_0
|
#undef ROUTINE_ARG_LIST_0
|
||||||
#undef ROUTINE_ARG
|
#undef ROUTINE_ARG
|
||||||
|
|
||||||
static lit_magic_string_id_t ecma_builtin_property_names[] =
|
#define ECMA_BUILTIN_PROPERTY_NAMES \
|
||||||
|
PASTE (PASTE (ecma_builtin_property_names, _), BUILTIN_UNDERSCORED_ID)
|
||||||
|
|
||||||
|
static lit_magic_string_id_t ECMA_BUILTIN_PROPERTY_NAMES[] =
|
||||||
{
|
{
|
||||||
#define SIMPLE_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable) name,
|
#define SIMPLE_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable) name,
|
||||||
#define NUMBER_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable) name,
|
#define NUMBER_VALUE(name, obj_getter, prop_writable, prop_enumerable, prop_configurable) name,
|
||||||
@@ -77,14 +80,14 @@ SORT_PROPERTY_NAMES_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (void)
|
|||||||
swapped = false;
|
swapped = false;
|
||||||
|
|
||||||
for (ecma_length_t i = 1;
|
for (ecma_length_t i = 1;
|
||||||
i < (sizeof (ecma_builtin_property_names) / sizeof (ecma_builtin_property_names[0]));
|
i < (sizeof (ECMA_BUILTIN_PROPERTY_NAMES) / sizeof (ECMA_BUILTIN_PROPERTY_NAMES[0]));
|
||||||
i++)
|
i++)
|
||||||
{
|
{
|
||||||
if (ecma_builtin_property_names[i] < ecma_builtin_property_names[i - 1])
|
if (ECMA_BUILTIN_PROPERTY_NAMES[i] < ECMA_BUILTIN_PROPERTY_NAMES[i - 1])
|
||||||
{
|
{
|
||||||
lit_magic_string_id_t id_temp = ecma_builtin_property_names[i - 1];
|
lit_magic_string_id_t id_temp = ECMA_BUILTIN_PROPERTY_NAMES[i - 1];
|
||||||
ecma_builtin_property_names[i - 1] = ecma_builtin_property_names[i];
|
ECMA_BUILTIN_PROPERTY_NAMES[i - 1] = ECMA_BUILTIN_PROPERTY_NAMES[i];
|
||||||
ecma_builtin_property_names[i] = id_temp;
|
ECMA_BUILTIN_PROPERTY_NAMES[i] = id_temp;
|
||||||
|
|
||||||
swapped = true;
|
swapped = true;
|
||||||
}
|
}
|
||||||
@@ -118,10 +121,10 @@ TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (ecma_object_t
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
const ecma_length_t property_numbers = (ecma_length_t) (sizeof (ecma_builtin_property_names) /
|
const ecma_length_t property_numbers = (ecma_length_t) (sizeof (ECMA_BUILTIN_PROPERTY_NAMES) /
|
||||||
sizeof (ecma_builtin_property_names[0]));
|
sizeof (ECMA_BUILTIN_PROPERTY_NAMES[0]));
|
||||||
int32_t index;
|
int32_t index;
|
||||||
index = ecma_builtin_bin_search_for_magic_string_id_in_array (ecma_builtin_property_names,
|
index = ecma_builtin_bin_search_for_magic_string_id_in_array (ECMA_BUILTIN_PROPERTY_NAMES,
|
||||||
property_numbers,
|
property_numbers,
|
||||||
id);
|
id);
|
||||||
|
|
||||||
@@ -307,17 +310,17 @@ LIST_LAZY_PROPERTY_NAMES_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (ecma_object_t *o
|
|||||||
|
|
||||||
JERRY_ASSERT (ecma_builtin_is (object_p, builtin_object_id));
|
JERRY_ASSERT (ecma_builtin_is (object_p, builtin_object_id));
|
||||||
|
|
||||||
const ecma_length_t properties_number = (ecma_length_t) (sizeof (ecma_builtin_property_names) /
|
const ecma_length_t properties_number = (ecma_length_t) (sizeof (ECMA_BUILTIN_PROPERTY_NAMES) /
|
||||||
sizeof (ecma_builtin_property_names[0]));
|
sizeof (ECMA_BUILTIN_PROPERTY_NAMES[0]));
|
||||||
|
|
||||||
for (ecma_length_t i = 0;
|
for (ecma_length_t i = 0;
|
||||||
i < properties_number;
|
i < properties_number;
|
||||||
i++)
|
i++)
|
||||||
{
|
{
|
||||||
lit_magic_string_id_t name = ecma_builtin_property_names[i];
|
lit_magic_string_id_t name = ECMA_BUILTIN_PROPERTY_NAMES[i];
|
||||||
|
|
||||||
int32_t index;
|
int32_t index;
|
||||||
index = ecma_builtin_bin_search_for_magic_string_id_in_array (ecma_builtin_property_names,
|
index = ecma_builtin_bin_search_for_magic_string_id_in_array (ECMA_BUILTIN_PROPERTY_NAMES,
|
||||||
properties_number,
|
properties_number,
|
||||||
name);
|
name);
|
||||||
|
|
||||||
@@ -424,6 +427,7 @@ DISPATCH_ROUTINE_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (uint16_t builtin_routine
|
|||||||
return c_function_name (this_arg_value ROUTINE_ARG_LIST_ ## args_number); \
|
return c_function_name (this_arg_value ROUTINE_ARG_LIST_ ## args_number); \
|
||||||
}
|
}
|
||||||
#include BUILTIN_INC_HEADER_NAME
|
#include BUILTIN_INC_HEADER_NAME
|
||||||
|
#undef ROUTINE_ARG
|
||||||
#undef ROUTINE_ARG_LIST_0
|
#undef ROUTINE_ARG_LIST_0
|
||||||
#undef ROUTINE_ARG_LIST_1
|
#undef ROUTINE_ARG_LIST_1
|
||||||
#undef ROUTINE_ARG_LIST_2
|
#undef ROUTINE_ARG_LIST_2
|
||||||
@@ -445,4 +449,5 @@ DISPATCH_ROUTINE_ROUTINE_NAME (BUILTIN_UNDERSCORED_ID) (uint16_t builtin_routine
|
|||||||
#undef TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME
|
#undef TRY_TO_INSTANTIATE_PROPERTY_ROUTINE_NAME
|
||||||
#undef BUILTIN_UNDERSCORED_ID
|
#undef BUILTIN_UNDERSCORED_ID
|
||||||
#undef BUILTIN_INC_HEADER_NAME
|
#undef BUILTIN_INC_HEADER_NAME
|
||||||
|
#undef ECMA_BUILTIN_PROPERTY_NAMES
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user