在进行嵌入式开发时,有的情况需要同时编译.c/.cpp/.s文件,这里以Ne10的fft为例给出一个Makefile的模板可以同时编译这些文件供大家使用。
TARGET = fft_test
CC = arm-linux-gnueabihf-gcc
SRCDIR = src
OBJDIR = obj
BINDIR = bin
SRCS_c = $(wildcard $(SRCDIR)/*.c)
SRCS_cpp = $(wildcard $(SRCDIR)/*.cpp)
SRCS_S = $(wildcard $(SRCDIR)/*.s)
OBJS = $(SRCS_c:$(SRCDIR)/%.c=$(OBJDIR)/%_c.o) $(SRCS_cpp:$(SRCDIR)/%.cpp=$(OBJDIR)/%_cpp.o) $(SRCS_S:$(SRCDIR)/%.s=$(OBJDIR)/%_S.o)
rm = rm -f
CFLAGS = -Wall -g -O3 -march=armv7-a -mfpu=neon-vfpv4 -ffast-math -lm
$(BINDIR)/$(TARGET): $(OBJS)
$(CC) $(OBJS) $(CFLAGS) -o $@
$(OBJDIR)/%_c.o : $(SRCDIR)/%.c
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/%_cpp.o : $(SRCDIR)/%.cpp
$(CC) $(CFLAGS) -c $< -o $@
$(OBJDIR)/%_S.o : $(SRCDIR)/%.s
$(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean
clean:
$(rm) $(OBJS)
.PHONY: remove
remove:
$(rm) $(BINDIR)/$(TARGET)
相关代码可以点击这里获取:https://github.com/Ryuk17/NEON-examples/tree/main/fft-light