Introducing make parameters todo, fixme and echo: todo/fixme enable printing of todo/fixme pragma messages if set to 1 (that are disabled by default after this commit); echo enables compilation/linking command line echoing if set to 1.

This commit is contained in:
Ruben Ayrapetyan 2014-07-29 14:52:42 +04:00
parent 299c94ee85
commit 8d387cd32f
3 changed files with 50 additions and 6 deletions

View File

@ -53,7 +53,12 @@ export FLASH_TARGETS = $(foreach __TARGET,$(foreach __MODE,$(TARGET_MODES),$(for
export OUT_DIR = ./out
export UNITTESTS_SRC_DIR = ./tests/unit
export SHELL=/bin/bash
export dwarf4
export echo
export todo
export fixme
all: clean $(JERRY_TARGETS) $(TESTS_TARGET) $(CHECK_TARGETS)

View File

@ -53,6 +53,26 @@ else
OPTION_DWARF4 := disable
endif
# Print TODO, FIXME
ifeq ($(todo),1)
OPTION_TODO := enable
else
OPTION_TODO := disable
endif
ifeq ($(fixme),1)
OPTION_FIXME := enable
else
OPTION_FIXME := disable
endif
# Compilation command line echoing
ifeq ($(echo),1)
OPTION_ECHO := enable
else
OPTION_ECHO := disable
endif
# JERRY_NDEBUG, debug symbols
ifeq ($(TARGET_MODE),release)
OPTION_NDEBUG = enable
@ -200,6 +220,14 @@ else
DEFINES_JERRY += -D__TARGET_MCU
endif
ifeq ($(OPTION_TODO),enable)
DEFINES_JERRY += -DJERRY_PRINT_TODO
endif
ifeq ($(OPTION_FIXME),enable)
DEFINES_JERRY += -DJERRY_PRINT_FIXME
endif
#
# Third-party sources, headers, includes, cflags, ldflags
#
@ -241,6 +269,7 @@ $(JERRY_TARGETS):
for jerry_src in $(SOURCES_JERRY) $(MAIN_MODULE_SRC); do \
cmd="$(CC) -c $(DEFINES_JERRY) $(CFLAGS_COMMON) $(CFLAGS_JERRY) $(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) $$jerry_src \
-o $(TARGET_DIR)/obj/$$(basename $$jerry_src).$$source_index.o"; \
if [ "$(OPTION_ECHO)" = "enable" ]; then echo $$cmd; echo; fi; \
$$cmd; \
if [ $$? -ne 0 ]; then echo Failed "'$$cmd'"; exit 1; fi; \
source_index=$$(($$source_index+1)); \
@ -248,11 +277,13 @@ $(JERRY_TARGETS):
for thirdparty_src in $(SOURCES_THIRDPARTY); do \
cmd="$(CC) -c $(CFLAGS_COMMON) $(CFLAGS_THIRDPARTY) $(INCLUDES_THIRDPARTY) $$thirdparty_src \
-o $(TARGET_DIR)/obj/$$(basename $$thirdparty_src).$$source_index.o"; \
if [ "$(OPTION_ECHO)" = "enable" ]; then echo $$cmd; echo; fi; \
$$cmd; \
if [ $$? -ne 0 ]; then echo Failed "'$$cmd'"; exit 1; fi; \
source_index=$$(($$source_index+1)); \
done; \
cmd="$(CC) $(CFLAGS_COMMON) $(TARGET_DIR)/obj/* $(LDFLAGS) -o $(TARGET_DIR)/$(ENGINE_NAME)"; \
if [ "$(OPTION_ECHO)" = "enable" ]; then echo $$cmd; echo; fi; \
$$cmd; \
if [ $$? -ne 0 ]; then echo Failed "'$$cmd'"; exit 1; fi;
@if [ "$(OPTION_STRIP)" = "enable" ]; then $(STRIP) $(TARGET_DIR)/$(ENGINE_NAME) || exit $$?; fi;
@ -268,8 +299,7 @@ $(TESTS_TARGET):
do \
cmd="$(CC) -c $(DEFINES_JERRY) $(CFLAGS_COMMON) $(CFLAGS_JERRY) \
$(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) $$jerry_src -o $(TARGET_DIR)/obj/$$(basename $$jerry_src).$$source_index.o"; \
echo $$cmd; \
echo; \
if [ "$(option_echo)" = "enable" ]; then echo $$cmd; echo; fi; \
$$cmd; \
if [ $$? -ne 0 ]; then echo Failed "'$$cmd'"; exit 1; fi; \
source_index=$$(($$source_index+1)); \
@ -278,8 +308,7 @@ $(TESTS_TARGET):
do \
cmd="$(CC) $(DEFINES_JERRY) $(CFLAGS_COMMON) $(CFLAGS_JERRY) \
$(INCLUDES_JERRY) $(INCLUDES_THIRDPARTY) $(TARGET_DIR)/obj/*.o $(UNITTESTS_SRC_DIR)/$$unit_test.c -o $(TARGET_DIR)/$$unit_test"; \
echo $$cmd; \
echo; \
if [ "$(OPTION_ECHO)" = "enable" ]; then echo $$cmd; echo; fi; \
$$cmd; \
if [ $$? -ne 0 ]; then echo Failed "'$$cmd'"; exit 1; fi; \
done

View File

@ -70,8 +70,18 @@ typedef enum
#define JERRY_STATIC_ASSERT( x ) typedef char JERRY_STATIC_ASSERT_GLUE( static_assertion_failed_, __LINE__) [ ( x ) ? 1 : -1 ] __unused
#define CALL_PRAGMA(x) _Pragma (#x)
#define TODO(x) CALL_PRAGMA(message ("TODO - " #x))
#define FIXME(x) CALL_PRAGMA(message ("FIXME - " #x))
#ifdef JERRY_PRINT_TODO
# define TODO(x) CALL_PRAGMA(message ("TODO - " #x))
#else /* !JERRY_PRINT_TODO */
# define TODO(X)
#endif /* !JERRY_PRINT_TODO */
#ifdef JERRY_PRINT_FIXME
# define FIXME(x) CALL_PRAGMA(message ("FIXME - " #x))
#else /* !JERRY_PRINT_FIXME */
# define FIXME(X)
#endif /* !JERRY_PRINT_FIXME */
/**
* Variable that must not be referenced.