如何将一个日食项目转换为独立的makefile项目?

时间:2019-06-10 11:04:19

标签: c eclipse makefile eclipse-cdt toolchain

我目前正在使用eclipse创建一个已经存在的项目。它使用“ CDT内部生成器”,该生成器将生成文件生成到“ / Debug”路径及其所有子目录中。 它的构建很好,但是我不想依赖于使用eclipse。

我尝试将所有的makefile文件复制到一个单独的makefile文件中,我想将其存储在主目录中(而不是/ Debug目录中),但是由于有多个带有大量文件的子目录,因此似乎效率极低,结果文件本来就很冗长而且没有结构。

我还尝试了以下有关此问题的建议,但是它们没有帮助: How to convert an Eclipse managed cdt project into Makefiles

每个subdir.mk文件包含三个列出每个文件的部分:

C_SRCS += \
../src/gps/gps.c \
../src/gps/minmea.c 
# ...

OBJS += \
./src/gps/gps.o \
./src/gps/minmea.o 
# ...

C_DEPS += \
./src/gps/gps.d \
./src/gps/minmea.d 
# ...

并包含其自己的构建规则:

src/gps/%.o: ../src/gps/%.c
    @echo 'Building file: $<'
    @echo 'Invoking: Cross ARM C Compiler'
    arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O3 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -ffreestanding -fno-move-loop-invariants -Wunused -Wuninitialized -Wall -Wextra -Wmissing-declarations -Wconversion -Wpointer-arith -Wpadded -Wshadow -Wlogical-op -Waggregate-return -Wfloat-equal  -g3 -DARM_MATH_CM4 -D__FPU_PRESENT -DDEBUG -DUSE_FULL_ASSERT -DTRACE -DOS_USE_TRACE_ITM -DSTM32F407xx -DUSE_HAL_DRIVER -DHSE_VALUE=10000000 -I"../include" -I"../system/include" -I"../system/include/cmsis" -I"../system/include/stm32f4-hal" -std=gnu11 -Wmissing-prototypes -Wstrict-prototypes -Wbad-function-cast -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
    @echo 'Finished building: $<'
    @echo ' '

要为我的所有文件复制此文件似乎很复杂,尤其是同一文件被列出三次时。

肯定有一种更简单的方法可以实现这一目标吗?

在主目录中只有一个makefile是我理想的解决方案。

0 个答案:

没有答案