| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- NUCLEI_SDK_BUILD = $(NUCLEI_SDK_ROOT)/Build
- # Include your local and global makefile variables
- # SOC, DOWNLOAD, STDCLIB etc.
- # Makefile.global should be placed in $(NUCLEI_SDK_ROOT)/Build
- # Makefile.local should be placed together with application Makefile in your own application folder
- # Sample content for this Makefile.local or Makefile.global
- # SOC ?= evalsoc
- # DOWNLOAD ?= ilm
- EXTRA_MKS := $(wildcard Makefile.local $(NUCLEI_SDK_BUILD)/Makefile.global)
- ifneq ("$(strip $(EXTRA_MKS))", "")
- $(info Obtaining addtional make variables from $(realpath $(EXTRA_MKS)))
- include $(EXTRA_MKS)
- endif
- # Variables could be passed in make command
- # NOTE: CORE and BOARD are defined in $(NUCLEI_SDK_ROOT)/SoC/$(SOC)/Makefile.build
- # BOARD and SOC name should always be lower-case
- ## Available choices:
- ## The name of sub directories in $(NUCLEI_SDK_ROOT)/SoC/
- SOC ?= evalsoc
- ## Available choices:
- ## ilm: Program will be downloaded into ilm/ram and run directly in ilm/ram, program lost when poweroff
- ## flash: Program will be downloaded into flash, when running, program will be copied to ilm/ram and run in ilm/ram
- ## flashxip: Program will be downloaded into flash and run directly in Flash
- DOWNLOAD ?= ilm
- ## If SIMULATION=1, it means the program is optimized for hardware simulation environment
- SIMULATION ?= 0
- ## If V=1, it will display compiling message in verbose including compiling options
- V ?=
- ## If SILENT=1, it will not display any compiling messsage
- SILENT ?=
- # Variables should be defined in Application Makefile
- ## Available choices:
- ## The name of sub directories in $(NUCLEI_SDK_ROOT)/OS/
- RTOS ?=
- ## Available choices:
- ##### Using newlib
- ### newlib_full: Normal newlib library with full newlib feature
- ### newlib_fast: Newlib-nano library with printf and scanf float feature
- ### newlib_small: Newlib-nano library with printf float feature
- ### newlib_nano: Newlib-nano library without float printf/scanf feature
- ##### Using Nuclei C Runtime library
- ### libncrt_fast: Nuclei C Runtime library, favor speed at the expense of size
- ### libncrt_balanced: balanced, full feature
- ### libncrt_small: favor size at the expense of speed, but full feature
- ### libncrt_nano: favor size at the expense of speed, no float support
- ### libncrt_pico: favor size at the expense of speed, no long/long long support
- ##### Using without system library or include
- ### nostd: Don't search the standard system directories for header files
- ### nospec: Don't pass any --specs options
- STDCLIB ?= newlib_nano
- ## Available choices:
- ### Use to choose heapops type for libncrt, only available for libncrt
- ### basic: A low-overhead best-fit heap where allocation and deallocation have very little internal fragmentation
- ### realtime: A real-time heap where allocation and deallocation have O(1) performance
- ### minimal: An allocate-only heap where deallocation and reallocation are not implemented
- NCRTHEAP ?= basic
- ## Available choices:
- ### Use to choose fileops type for libncrt, only available for libncrt
- ### uart: lower level input/output via uart, developer need to implement metal_tty_putc/getc
- ### semi: input/output via semihosting
- ### rtt: input/output via jlink rtt, require to use JLink tool
- NCRTIO ?= uart
- ## If NOGC=1, it will not gc any sections during compiling to save code size
- NOGC ?=
- ## If BANNER=0, it will not display sdk banner when program run
- BANNER ?=
- ## If AUTOVEC=0, it will try to disable compiler auto vectorization as much as possible
- AUTOVEC ?=
- # Directory variables for NMSIS, SoC/RTOS chosen, Middleware Components
- # NUCLEI_SDK_SOC and NUCLEI_SDK_RTOS variables need to be set deferred
- NUCLEI_SDK_NMSIS ?= $(NUCLEI_SDK_ROOT)/NMSIS
- NUCLEI_SDK_SOC = $(NUCLEI_SDK_ROOT)/SoC/$(SOC)
- NUCLEI_SDK_RTOS = $(NUCLEI_SDK_ROOT)/OS/$(RTOS)
- NUCLEI_SDK_MIDDLEWARE := $(NUCLEI_SDK_ROOT)/Components
- ## Include GNU Make Standard Library
- ## Website: http://gmsl.sourceforge.net/
- include $(NUCLEI_SDK_BUILD)/gmsl/gmsl
- include $(NUCLEI_SDK_BUILD)/Makefile.misc
- include $(NUCLEI_SDK_BUILD)/Makefile.conf
- include $(NUCLEI_SDK_BUILD)/Makefile.rules
|