AlanRosenthal opened a new pull request #5055: URL: https://github.com/apache/incubator-nuttx/pull/5055
This pull request improves the dependencies for Makefile.unix::context rule. * `include/math.h`, `include/float.h`, `include/stdarg.h`, `include/setjmp.h` are only added to `context`'s dependency if the Kconfig value is set. This prevents `context` from trying to make `include/math.h` only to find out there's no command to create the file. * Instead of executing $(CONTEXTDIRS) in a for loop in the `context` rule, $(CONTEXTDIRS) are added as a dependency to `context` and a rule is created to create the targets. Real files are used, to prevent needlessly rebuilding the same `context` over and over and over again. * Instead of making the directory `staging`, add it as an order-only dependency for `context`. this ensures the directory is only created if it doesn't exist. Tested by running: ``` (cd tools && ./configure.sh -a ../incubator-nuttx-apps stm32f3discovery:nsh) make context ``` First time running context: ``` ➜ incubator-nuttx git:(improve-make-context) time make context make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/builtin' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/builtin' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Entering directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[3]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics/nxglib' make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/graphics' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx' Create .version make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/tools' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/tools' Create version.h LN: include/arch to arch/arm/include LN: include/arch/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/include LN: include/arch/chip to arch/arm/include/stm32 LN: arch/arm/src/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/../common LN: arch/arm/src/board/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/src LN: arch/arm/src/chip to arch/arm/src/stm32 LN: /home/user/code/fitbit/incubator-nuttx/drivers/platform to /home/user/code/fitbit/incubator-nuttx/drivers/dummy make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' LN: platform/board to /home/user/code/fitbit/incubator-nuttx-apps/platform/dummy make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make context 0.95s user 0.45s system 109% cpu 1.281 total ``` second time running context: ``` ➜ incubator-nuttx git:(improve-make-context) time make context Create .version Create version.h LN: include/arch/board to /home/user/code/fitbit/incubator-nuttx/boards/arm/stm32/stm32f3discovery/include make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Nothing to be done for 'dirlinks'. make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx/boards' make[1]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps' make[2]: Entering directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' LN: platform/board to /home/user/code/fitbit/incubator-nuttx-apps/platform/dummy make[2]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps/platform' make[1]: Leaving directory '/home/user/code/fitbit/incubator-nuttx-apps' make context 0.30s user 0.20s system 121% cpu 0.414 total ``` ## Summary ## Impact ## Testing -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
