Reputation: 1029
Using the Eclipse IDE for C/C++ Developers (in this case Kinetis Design Studio), I have pre-build stps to delete a file and auto generate another file. However I notice in the build log that compilation is started before pre-build is complete! Not ideal if my auto generated header file is used early on.
I have also observed a similar problem with post build where multiple commands are executed but fail as are dependent on files from previous steps.
Does anyone have any thoughts or advice on how to ensure pre build is actually pre build?
17:54:49 **** Build of configuration debug for project TestProj_Firmware ****
make -k -j8 pre-build main-build
PRE BUILD COMMAND EXECUTED
Delete main.o to force a build & Generate version.hpp
rm "Source\D3\main.o" & subwcrev "C:/dev/TestProj Firmware/TestProj_Firmware\.." "..\settings\Version.tmpl" "..\..\Source\D3\Version.hpp"
COMPILATION STARTED
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/system_MK24F12.c
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_adc16.c
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_clock.c
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_common.c
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_crc.c
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_flash.c
Invoking: Cross ARM C Compiler
Invoking: Cross ARM C Compiler
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_ftm.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/startup/system_MK24F12.d" -MT"Source/KSDK/startup/system_MK24F12.d" -c -o "Source/KSDK/startup/system_MK24F12.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/system_MK24F12.c"
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_adc16.d" -MT"Source/KSDK/drivers/fsl_adc16.d" -c -o "Source/KSDK/drivers/fsl_adc16.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_adc16.c"
Invoking: Cross ARM C Compiler
Invoking: Cross ARM C Compiler
FIRST PRE BUILD STEP EXECUTED (FAILS)
rm: can't remove 'Source\D3\main.o': No such file or directory
MORE COMPILATION
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_clock.d" -MT"Source/KSDK/drivers/fsl_clock.d" -c -o "Source/KSDK/drivers/fsl_clock.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_clock.c"
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_common.d" -MT"Source/KSDK/drivers/fsl_common.d" -c -o "Source/KSDK/drivers/fsl_common.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_common.c"
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_crc.d" -MT"Source/KSDK/drivers/fsl_crc.d" -c -o "Source/KSDK/drivers/fsl_crc.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_crc.c"
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_flash.d" -MT"Source/KSDK/drivers/fsl_flash.d" -c -o "Source/KSDK/drivers/fsl_flash.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_flash.c"
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_ftm.d" -MT"Source/KSDK/drivers/fsl_ftm.d" -c -o "Source/KSDK/drivers/fsl_ftm.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_ftm.c"
SECOND PRE BUILD STEP EXECUTED
SubWCRev: 'C:\dev\TestProj Firmware'
Last committed at revision 242
Mixed revision range 242:243
Unversioned items found
CARRIES ON COMPILING
Building file: C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_gpio.c
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -ffreestanding -fno-builtin -Wall -g -DDEBUG -D__STARTUP_CLEAR_BSS -DDEBUG_PRINT -DCPU_MK24FN1M0VLQ12 -DFSL_RTOS_FREE_RTOS -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Board" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/Config" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/SDMMCPort" -I"C:/dev/TestProj Firmware/TestProj_Firmware/../Source/D3/InFact" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/utilities" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/CMSIS/Include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/inc" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/sdmmc_2.1.2/port" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/fsl_sd_disk" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/middleware/fatfs_0.12b/src/option" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/include" -I"C:/dev/TestProj Firmware/TestProj_Firmware\..\Source\SDK_2.2_MK24FN1M0xxx12/rtos/freertos_9.0.0/Source/portable/GCC/ARM_CM4F" -std=gnu99 -mapcs -MMD -MP -MF"Source/KSDK/drivers/fsl_gpio.d" -MT"Source/KSDK/drivers/fsl_gpio.d" -c -o "Source/KSDK/drivers/fsl_gpio.o" "C:/dev/TestProj Firmware/Source/SDK_2.2_MK24FN1M0xxx12/devices/MK24F12/drivers/fsl_gpio.c"
Finished building: C:/dev/
Upvotes: 1
Views: 1997
Reputation: 11
I am adding to this because I just had the same issue and found the "correct" solution to it. You should not be using a prebuilt step for this, you should be using a custom builder, which is any program or script you like.
Suppose you have:
Open the Properties dialog for the project, click on Builders in the list on the left of the dialog, click New and double click on the line that says Program. This should open the dialog titled "Edit Launch Configuration Properties".
On the Main tab, fill in a name for your builder configuration in the Name field. Fill in a complete path to your program, in our example /fullpath/GenProg and fill in the working directory. You can use one of the variables if there are any suitable by clicking on Variables. Finally, specify any parameters in the Arguments field. You can click on the Show Command Line button to see the command line Eclipse will generate from all of your input.
Click on the Refresh tab and tick "Refresh resource upon completion". From the radio buttons, I generally choose The "selected resource". Tick "Recursively include subfolders" if not already ticked. You might want to check the Build Option tab, I usually add the "During Auto Builds" option but you might not want this.
When you have done this, click on OK to get back to the Builders dialog. You will see your new configuration at the bottom of the list. Because the builder is generating the source code for our project, we want it executed and finished before the compilation and link steps start. So select it and using the "Up" button, move it to the top of the list. All other make steps now become dependent on your new builder step. If you wanted to define a post build action, instead of using the post-build command feature, you would do what we just did, except you would leave the builder configuration for the post build actions at the bottom of the list.
This also works nicely if you have told Eclipse to run compilations in parallel. On my MacBook M2 this gives build performance to die for.
I have done this for many projects, the one irritation is I have to make a new builder configuration each time for each project. I have not yet found a way to import an existing one. And of course, each one has a unique name.
I have only done this on MacOS; I cannot see any reason why it won't work on any other platform, though, but I have not tried it. Also, I am (always) on the latest version of Eclipse and all of its CDT tools.
In general, then, do not try anything fancy with the pre and post build commands, they are not synchronised as you would imagine they would be with the rest of the build. Define your own builder configs, and put them in the correct sequence in the list of builder configs. Then it works as you would expect it to work.
Upvotes: 1
Reputation: 8975
In your Makefile
, add the pre-build
target as a dependency of your main-build
target.
main-build: whatever-other-stuff pre-build
# ...
This will make sure that make
does not try to build main-build
until pre-build
is complete.
If your Makefile
is automatically generated by your IDE you will need to figure out how to get it to generate a correct one.
Background:
If make -j
does something wrong when make
without -j
(so effectively -j 1
) works, it means your build process has an implicit dependency on what order make
happens to build the targets in. When you tell make
to run multiple steps at the same time if possible, by running with -j
> 1, it will still enforce dependencies that are actually in the make rules it is operating on -- it won't try to build a target before or during the build of a target it depends on, if it knows about the dependency. You just need to give it rules that capture all the actual dependencies of the things you're building.
Upvotes: 0
Reputation: 7980
This is fixed in recent Eclipse CDT releases. CDT 9.3 (released with Eclipse Oxygen) in 2017 and later releases. See more details in Bug 340300
Upvotes: 1
Reputation: 1
This console app is placed in the same folder as make.exe and eliminates this issue by waiting for the pre-build phase to complete before invoking the main build list. You're welcome to use and modify as needed. Set the Eclipse build to use vmake.exe rather than make.exe. here
Upvotes: 0
Reputation: 91
Every Eclipse is different, but in Neon I also continually found that the parallel build make -j8 settings kept "coming back" as commented by the OP. To fix that:
Non-parallel build is still a lot slower, not sure there is a way around that.
Upvotes: 0
Reputation: 1029
OK, so looks like it is due to the issue mentioned here. I removed the -j option from the make command (found in the C++ Build setting, behavior tab) and now everything is executed in order. Unfortunately compilation is tortuously slow!
Upvotes: 1