mirror of
https://github.com/apache/nuttx.git
synced 2026-08-09 22:45:08 +00:00
The goal is to only execute recipes when there is an actual change in the prerequisites. There are several issues which cause the nuttx binary target to be re-made every time the top level make is run. 1. Previously the target nuttx$(EXEEXT), was used, but make resolved this in the relative directory make -C $(ARCH_SRC), and couldn’t find it (need an absolute path: `$(TOPDIR)/..). 2. The .tmp prerequisite for nuttx was always deleted 3. libboard's recipe had a sub-make which may or may not update that target. This was a phony target, and was therefore always considered out of date. These issues were causing the nuttx recipe to be run every make, which was hiding some missing prerequisites: 1. the .config is a prerequisite for the .tmp target 2. libapps.a (and other linklibs) are pre-requisites for nuttx Changes: The changes are only in the build system, and only for arm. Track nuttx$(EXEEXT) via vpath so Make knows when it's already up to date without an explicit path. Add $(TOPDIR)/.config as a dependency to the linker script preprocessing so config changes trigger re-preprocessing. Keep the .tmp linker script on disk (clean already removes it) so timestamp-based dependency checking works across builds. These .tmp files need to be added to the gitignore or the CI will complain. Use FORCE pattern for board/libboard to ensure it's always checked but use the actual library file as the link dependency so nuttx is only re-linked when library content changes. Add staging libs as dependency to nuttx link rule so changed app libs trigger re-link. Signed-off-by: Liam Hickey <williamhickey@geotab.com> |
||
|---|---|---|
| .. | ||
| aio | ||
| assert | ||
| audio | ||
| builtin | ||
| ctype | ||
| dirent | ||
| dlfcn | ||
| elf | ||
| errno | ||
| eventfd | ||
| fdt | ||
| fixedmath | ||
| gdbstub | ||
| gnssutils | ||
| grp | ||
| hex2bin | ||
| inttypes | ||
| libgen | ||
| locale | ||
| lzf | ||
| machine | ||
| misc | ||
| net | ||
| netdb | ||
| obstack | ||
| pthread | ||
| pwd | ||
| queue | ||
| regex | ||
| sched | ||
| search | ||
| semaphore | ||
| signal | ||
| spawn | ||
| stdio | ||
| stdlib | ||
| stream | ||
| string | ||
| symtab | ||
| syslog | ||
| termios | ||
| time | ||
| tls | ||
| uio | ||
| unistd | ||
| userfs | ||
| uuid | ||
| wchar | ||
| wctype | ||
| wqueue | ||
| zoneinfo | ||
| .gitignore | ||
| CMakeLists.txt | ||
| Kconfig | ||
| libc.csv | ||
| libc.h | ||
| Makefile | ||