stbenn opened a new issue, #16093: URL: https://github.com/apache/nuttx/issues/16093
### Description I am having issues with make recognizing file changes in my custom app. As a result, I need to `make clean` before every build which is not ideal. I believe the root cause is my app having `src` and `include` directories instead of being contained in one directory like the custom app example in the NuttX documentation. ## My Project Structure I made a sample git repo that demonstrates how I have the project set up (https://github.com/stbenn/NuttxCustomAppQuestion.git) to reference in addition to the following explanation. Directory structure: ``` ProjectDir/ nuttx/ apps/ external/ Make.defs Makefile custom_app/ (symlink) custom_app/ /include header_files.h /src custom_app.c other_sources.c KConfig Make.defs Makefile ``` Command used to link custom app directory: in `ProjectDir`, `ln -sr custom_app apps/external/custom_app` ### `apps/external/Makefile` ``` MENUDESC = "External Apps" include $(APPDIR)/Directory.mk ``` ### `apps/external/Make.defs` ``` include $(wildcard $(APPDIR)/external/*/Make.defs) ``` ### `custom_app/Make.defs` ``` ifneq ($(CONFIG_CUSTOM_APP),) CONFIGURED_APPS += $(APPDIR)/external/custom_app endif ``` ### `custom_app/Makefile` ``` include $(APPDIR)/Make.defs ifeq ($(CONFIG_CUSTOM_APP),y) PROGNAME = $(CONFIG_CUSTOM_APP_PROGNAME) PRIORITY = $(CONFIG_CUSTOM_APP_PRIORITY) STACKSIZE = $(CONFIG_CUSTOM_APP_STACKSIZE) MAINSRC = src/custom_app.c CSRCS = src/other_sources.c # This is how to add the include directory to the build system. # the path to the directory should match AFTER the symlink. So here it's apps/external/custom_app/include CFLAGS += ${shell $(INCDIR) "$(CC)" "$(APPDIR)$(DELIM)external$(DELIM)custom_app$(DELIM)include"} endif include $(APPDIR)/Application.mk .PHONY: clean clean:: rm -f src/*.su ``` Note: I have also experimented with using `CFLAGS += ${INCDIR_PREFIX}${APPDIR}/external/custom_app/include` in `custom_app/Make.defs` ## Desired Behavior The NuttX build system detects when changes are made to files in the subdirectories of `custom_app` without requiring a `make clean` before `make`. ### Verification - [x] I have verified before submitting the report. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org