Makefile 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. APPLICATION = wamr-mini
  2. # If no BOARD is defined in the environment, use this default:
  3. BOARD ?= native
  4. # This has to be the absolute path to the RIOT base directory:
  5. RIOTBASE ?= $(CURDIR)/../../../../RIOT
  6. USEMODULE += ztimer64_msec
  7. USEMODULE += ztimer_usec
  8. USEMODULE += sema
  9. WPEDANTIC := 0
  10. WERROR := 0
  11. # Comment this out to disable code in RIOT that does safety checking
  12. # which is not needed in a production environment but helps in the
  13. # development process:
  14. DEVELHELP ?= 1
  15. # Change this to 0 show compiler invocation lines by default:
  16. QUIET ?= 1
  17. ARCHIVES += $(BINDIR)/libwamr.a
  18. #Load the usual RIOT make infastructure
  19. include $(RIOTBASE)/Makefile.include
  20. WAMR_SOURCE = $(CURDIR)/../../..
  21. WAMR_BUILD_DIR = $(BINDIR)/wamr
  22. #less Wall TODO: get things fixed
  23. CFLAGS := $(filter-out -pedantic, $(CFLAGS))
  24. CFLAGS += -Wno-format
  25. CFLAGS += -Wno-strict-prototypes
  26. CFLAGS += -Wno-old-style-definition
  27. CFLAGS += -Wno-cast-function-type
  28. WAMR_CORE = $(WAMR_SOURCE)/core
  29. IWASM_ROOT = $(WAMR_CORE)/iwasm
  30. SHARED_LIB_ROOT = $(WAMR_CORE)/shared
  31. IWASM_INCLUDES += ${IWASM_ROOT}/include \
  32. ${SHARED_LIB_ROOT}/platform/include \
  33. ${SHARED_LIB_ROOT}/platform/riot \
  34. INCLUDES += $(addprefix -I,${IWASM_INCLUDES})
  35. RIOT_INCLUDES = $(filter-out -%,$(subst -I,,$(INCLUDES)))
  36. #WAMR_BUILD_TARGET is "X86_32" "AARCH64[sub]", "ARM[sub]",
  37. # "THUMB[sub]", "MIPS" or "XTENSA"
  38. #no msp430, no AVR support for now
  39. #translate (CPU_ARCH) to Build Target
  40. ifeq ($(CPU),native)
  41. #$(CPU) is defined for every CPU
  42. #Riot native is x86_32
  43. WAMR_BUILD_TARGET = X86_32
  44. else ifeq ($(findstring arm,$(CPU_ARCH)),arm)
  45. WAMR_BUILD_TARGET = THUMB
  46. else ifeq ($(CPU_ARCH),mips32r2)
  47. WAMR_BUILD_TARGET = MIPS
  48. else ifeq ($(CPU_ARCH),xtensa)
  49. WAMR_BUILD_TARGET = XTENSA
  50. endif
  51. ifeq ($(QUIET), 0)
  52. CMAKEMAKEFLAGS += VERBOSE=1
  53. endif
  54. $(BINDIR)/libwamr.a: $(WAMR_BUILD_DIR)/libwamr.a
  55. cp $< $@
  56. $(WAMR_BUILD_DIR)/libwamr.a: $(WAMR_BUILD_DIR)/Makefile
  57. $(MAKE) -C $(WAMR_BUILD_DIR) $(CMAKEMAKEFLAGS)
  58. $(WAMR_BUILD_DIR)/Makefile: CMakeLists.txt
  59. cmake -B$(WAMR_BUILD_DIR) \
  60. "-DRIOT_INCLUDES=$(RIOT_INCLUDES)"\
  61. -DWAMR_ROOT_DIR=$(WAMR_SOURCE)\
  62. -DWAMR_BUILD_TARGET=$(WAMR_BUILD_TARGET)\
  63. -DCMAKE_SYSTEM_NAME=Generic \
  64. -DCMAKE_SYSTEM_PROCESSOR="$(MCPU)" \
  65. -DCMAKE_C_COMPILER=$(CC) \
  66. -DCMAKE_C_COMPILER_WORKS=TRUE \
  67. print_build_target:
  68. @echo CPU_ARCH: $(CPU_ARCH)
  69. @echo CPU: $(CPU)
  70. @echo CFLAGS: $(CFLAGS)
  71. @echo WAMR_BUILD_TARGET: $(WAMR_BUILD_TARGET)