ifndef ZJS_BASE $(error ZJS_BASE not defined) endif JERRY_BASE ?= $(ZJS_BASE)/deps/jerryscript OCF_ROOT ?= deps/iotivity-constrained .PHONY: all all: linux include Makefile.ocf_linux CORE_SRC += src/zjs_buffer.c \ src/zjs_callbacks.c \ src/zjs_console.c \ src/zjs_event.c \ src/zjs_linux_ring_buffer.c \ src/zjs_linux_time.c \ src/zjs_modules.c \ src/zjs_performance.c \ src/zjs_ocf_common.c \ src/zjs_ocf_client.c \ src/zjs_ocf_server.c \ src/zjs_promise.c \ src/zjs_script.c \ src/zjs_script_gen.c \ src/zjs_timers.c \ src/zjs_unit_tests.c \ src/zjs_util.c CORE_OBJ = $(CORE_SRC:%.c=%.o) LINUX_INCLUDES += -Isrc/ \ -I$(JERRY_BASE)/jerry-core \ -I$(OCF_ROOT)/deps/tinydtls \ -I$(OCF_ROOT) \ -I$(OCF_ROOT)/port/linux \ -I$(OCF_ROOT)/include \ -include $(OCF_ROOT)/port/linux/config.h JERRY_LIBS += -l jerry-core -lm JERRY_LIB_PATH += -L $(JERRY_BASE)/build/lib/ LINUX_LIBS += $(JERRY_LIBS) -pthread LINUX_DEFINES += -DZJS_LINUX_BUILD \ -DOC_CLIENT \ -DOC_SERVER \ -DBUILD_MODULE_OCF \ -DBUILD_MODULE_EVENTS \ -DBUILD_MODULE_PERFORMANCE \ -DBUILD_MODULE_CONSOLE LINUX_FLAGS += -fno-asynchronous-unwind-tables \ -fno-omit-frame-pointer \ -Wno-format-zero-length \ -Wno-main \ -ffreestanding \ -Os \ -fno-stack-protector \ -ffunction-sections \ -fdata-sections \ -Wno-unused-but-set-variable \ -fno-reorder-functions \ -fno-defer-pop \ -Wno-pointer-sign \ -fno-strict-overflow \ -Werror=implicit-int \ -Wall \ -Werror \ -std=gnu99 \ -flto \ -Wpointer-sign ifeq ($(VARIANT), debug) LINUX_DEFINES += -DDEBUG_BUILD LINUX_FLAGS += -g DEBUG=1 else DEBUG=0 endif ifeq ($(CB_STATS), on) LINUX_DEFINES += -DZJS_PRINT_CALLBACK_STATS endif ifeq ($(V), 1) VERBOSE=-v endif %.o:%.c @echo "Building $@" gcc -c -o $@ $< $(LINUX_INCLUDES) $(LINUX_DEFINES) $(LINUX_FLAGS) .PHONY: linux linux: $(CORE_OBJ) @echo "Building for Linux $(CORE_OBJ)" cd deps/jerryscript; python ./tools/build.py $(VERBOSE); gcc $(LINUX_INCLUDES) $(JERRY_LIB_PATH) -static -o jslinux src/main.c $(CORE_OBJ) $(LINUX_FLAGS) $(CFLAGS) $(LINUX_DEFINES) $(LINUX_LIBS) .PHONY: clean clean: rm -f $(CORE_OBJ)