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]


Reply via email to