是否有可能makefile可以通过标志使用不同的编译器并找到可变的gcc路径?系统为Linux
所以目标应该是类似于在命令行中说"make CC=…"它应该使用两个可能的编译器中的一个,并且应该以一种"自动"的方式找到第二个编译器的路径(第一个编译器是标准的gcc)。这可能吗?
例如:
第一个编译器:
CC := gcc
第二个编译器第一个路径:
CC := /path-to-compiler-1/gcc
第二个编译器第二个路径:
CC := /path-to-compiler-2/gcc
不幸的是,我不知道如何以一种优雅的方式实现这一点。
编辑:关于这两种不同的编译器的背景是,第一个是标准的linux gcc,第二个是针对mips优化的gcc。所以我只想用两种方式编译,在嵌入式站点上为mips编译,必要时在普通linux站点上进行标准编译。或者另一种可能是同时编译两个可执行文件。mips编译器列在一个以/home/user开头的路径下。因此,文件夹用户是可变的,可能存在另一个上级文件夹。关于这一点,makefile应该为mips找到正确的路径。
你是这个意思吗?
CC = $(if $(COMPILER),$(COMPILER),gcc)
CFLAGS = -std=c11 -pedantic -Wall
all:
$(CC) $(CFLAGS) -o demo demo.c
clean:
rm -f demo
您可以使用:
启动Makefile
make COMPILER=gcc
或
make COMPILER=clang
如果你没有提供任何参数
make
默认为gcc