| 
									
										
										
										
											2016-08-17 23:08:22 +08:00
										 |  |  | #
 | 
					
						
							|  |  |  | # Component Makefile
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-09-08 17:41:43 +08:00
										 |  |  | COMPONENT_SRCDIRS := . hwcrypto | 
					
						
							| 
									
										
										
										
											2016-12-03 22:11:22 +00:00
										 |  |  | LIBS ?= | 
					
						
							| 
									
										
										
										
											2017-09-05 15:50:31 +10:00
										 |  |  | ifndef CONFIG_NO_BLOBS | 
					
						
							| 
									
										
										
										
											2018-02-27 18:22:20 +08:00
										 |  |  | LIBS += core rtc net80211 pp wpa smartconfig coexist wps wpa2 espnow phy mesh | 
					
						
							| 
									
										
										
										
											2017-08-10 10:46:36 +05:30
										 |  |  | endif | 
					
						
							| 
									
										
										
										
											2016-09-08 17:41:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-20 16:26:35 +08:00
										 |  |  | #Linker scripts used to link the final application.
 | 
					
						
							|  |  |  | #Warning: These linker scripts are only used when the normal app is compiled; the bootloader
 | 
					
						
							|  |  |  | #specifies its own scripts.
 | 
					
						
							| 
									
										
										
										
											2016-12-12 15:54:30 +11:00
										 |  |  | LINKER_SCRIPTS += esp32.common.ld esp32.rom.ld esp32.peripherals.ld | 
					
						
							| 
									
										
										
										
											2016-08-19 18:45:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-28 12:48:31 +08:00
										 |  |  | #Force pure functions from libgcc.a to be linked from ROM
 | 
					
						
							|  |  |  | LINKER_SCRIPTS += esp32.rom.libgcc.ld | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-20 16:26:35 +08:00
										 |  |  | #SPI-RAM incompatible functions can be used in when the SPI RAM 
 | 
					
						
							|  |  |  | #workaround is not enabled.
 | 
					
						
							|  |  |  | ifndef CONFIG_SPIRAM_CACHE_WORKAROUND | 
					
						
							|  |  |  | LINKER_SCRIPTS += esp32.rom.spiram_incompatible_fns.ld | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-05 15:50:31 +10:00
										 |  |  | ifdef CONFIG_NEWLIB_NANO_FORMAT | 
					
						
							| 
									
										
										
										
											2016-12-12 15:54:30 +11:00
										 |  |  | LINKER_SCRIPTS += esp32.rom.nanofmt.ld | 
					
						
							| 
									
										
										
										
											2016-11-07 18:43:29 +08:00
										 |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-09-05 15:50:31 +10:00
										 |  |  | ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH | 
					
						
							| 
									
										
										
										
											2017-03-09 10:29:00 +03:00
										 |  |  | LINKER_SCRIPTS += esp32.rom.spiflash.ld | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-04-18 17:14:32 +08:00
										 |  |  | #ld_include_panic_highint_hdl is added as an undefined symbol because otherwise the 
 | 
					
						
							|  |  |  | #linker will ignore panic_highint_hdl.S as it has no other files depending on any
 | 
					
						
							|  |  |  | #symbols in it.
 | 
					
						
							| 
									
										
										
										
											2017-06-23 14:08:01 +10:00
										 |  |  | COMPONENT_ADD_LDFLAGS += $(COMPONENT_PATH)/libhal.a \
 | 
					
						
							| 
									
										
										
										
											2016-12-12 15:54:30 +11:00
										 |  |  |                          -L$(COMPONENT_PATH)/lib \
 | 
					
						
							|  |  |  |                          $(addprefix -l,$(LIBS)) \
 | 
					
						
							|  |  |  |                          -L $(COMPONENT_PATH)/ld \
 | 
					
						
							|  |  |  |                          -T esp32_out.ld \
 | 
					
						
							| 
									
										
										
										
											2017-04-18 17:14:32 +08:00
										 |  |  |                          -u ld_include_panic_highint_hdl \
 | 
					
						
							| 
									
										
										
										
											2016-12-12 15:54:30 +11:00
										 |  |  |                          $(addprefix -T ,$(LINKER_SCRIPTS)) | 
					
						
							| 
									
										
										
										
											2016-08-17 23:08:22 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-19 14:20:28 +08:00
										 |  |  | ALL_LIB_FILES := $(patsubst %,$(COMPONENT_PATH)/lib/lib%.a,$(LIBS)) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-11-16 11:12:48 +11:00
										 |  |  | COMPONENT_SUBMODULES += lib | 
					
						
							| 
									
										
										
										
											2016-08-19 14:20:28 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-12 15:54:30 +11:00
										 |  |  | # final linking of project ELF depends on all binary libraries, and
 | 
					
						
							|  |  |  | # all linker scripts (except esp32_out.ld, as this is code generated here.)
 | 
					
						
							|  |  |  | COMPONENT_ADD_LINKER_DEPS := $(ALL_LIB_FILES) $(addprefix ld/,$(LINKER_SCRIPTS)) | 
					
						
							| 
									
										
										
										
											2016-09-21 11:04:16 +10:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Preprocess esp32.ld linker script into esp32_out.ld
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # The library doesn't really depend on esp32_out.ld, but it
 | 
					
						
							|  |  |  | # saves us from having to add the target to a Makefile.projbuild
 | 
					
						
							|  |  |  | $(COMPONENT_LIBRARY): esp32_out.ld | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | esp32_out.ld: $(COMPONENT_PATH)/ld/esp32.ld ../include/sdkconfig.h | 
					
						
							|  |  |  | 	$(CC) -I ../include -C -P -x c -E $< -o $@ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | COMPONENT_EXTRA_CLEAN := esp32_out.ld | 
					
						
							| 
									
										
										
										
											2017-11-15 11:09:54 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # disable stack protection in files which are involved in initialization of that feature
 | 
					
						
							|  |  |  | stack_check.o: CFLAGS := $(filter-out -fstack-protector%, $(CFLAGS)) | 
					
						
							| 
									
										
										
										
											2018-02-27 18:22:20 +08:00
										 |  |  | cpu_start.o: CFLAGS := $(filter-out -fstack-protector%, $(CFLAGS)) |