Makefile 976 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # 编译器设置
  2. CC = gcc
  3. CFLAGS = -Wall -O2 -I.. -I../tools
  4. LDFLAGS =
  5. # 源文件列表 - 移除 fftutil.c
  6. SOURCES = \
  7. ../kiss_fft.c \
  8. ../tools/kiss_fastfir.c \
  9. ../tools/kiss_fftr.c \
  10. ../tools/kfc.c \
  11. ../tools/kiss_fftnd.c \
  12. ../tools/kiss_fftndr.c
  13. OBJECTS = $(SOURCES:.c=.o)
  14. # 源文件与目标的映射
  15. TARGET = base function
  16. # 自动生成目标对应的源文件依赖
  17. base_SRC = $(SOURCES) base.c
  18. base_OBJ = $(base_SRC:.c=.o)
  19. function_SRC = $(SOURCES) function-test.c
  20. function_OBJ = $(function_SRC:.c=.o)
  21. # 默认目标
  22. all: $(TARGET)
  23. # base 目标依赖 base.c
  24. base: $(base_OBJ)
  25. $(CC) $(base_OBJ) -o $@ $(LDFLAGS)
  26. # function 目标依赖 function.c
  27. function: $(function_OBJ)
  28. $(CC) $(function_OBJ) -o $@ $(LDFLAGS)
  29. # 链接目标文件生成可执行文件
  30. # $(TARGET): $(OBJECTS)
  31. # $(CC) $(OBJECTS) -o $@ $(LDFLAGS)
  32. # 编译规则
  33. %.o: %.c
  34. $(CC) $(CFLAGS) -c $< -o $@
  35. # 清理生成的文件
  36. clean:
  37. rm -f $(OBJECTS) $(TARGET)
  38. .PHONY: all clean