Makefile根据两组对象指定不同的编译标志
Makefile specify different compilation flags based on two groups of objects
在我的 makefile 中,我编译的文件如下所示:
a_SRCS = $(shell find $(DIR1) -name '*.c')
b_SRCS = $(shell find $(DIR2) -name '*.c')
a_OBJS = $(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(a_SRCS))
b_OBJS = $(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(b_SRCS))
$(BIN): $(a_OBJS) $(b_OBJS)
$(CC) $^ -o $@ $(LIBS)
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
我想根据当前要生成的对象 $(OBJ)/%.o
属于 $a_OBJS
还是 $b_OBJS
来指定不同的编译标志。像下面这样的东西。可以吗?
#for a_OBJS
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(a_CFLAGS) -c $< -o $@
#for b_OBJS
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(b_CFLAGS) -c $< -o $@
您可以使用 target-specific variables:
$(a_OBJS) : EXTRA_FLAGS = -DA_OBJ
$(b_OBJS) : EXTRA_FLAGS = -DB_OBJ
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(EXTRA_FLAGS) -c $< -o $@
在我的 makefile 中,我编译的文件如下所示:
a_SRCS = $(shell find $(DIR1) -name '*.c')
b_SRCS = $(shell find $(DIR2) -name '*.c')
a_OBJS = $(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(a_SRCS))
b_OBJS = $(patsubst $(SRC)/%.c,$(OBJ)/%.o,$(b_SRCS))
$(BIN): $(a_OBJS) $(b_OBJS)
$(CC) $^ -o $@ $(LIBS)
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(CFLAGS) -c $< -o $@
我想根据当前要生成的对象 $(OBJ)/%.o
属于 $a_OBJS
还是 $b_OBJS
来指定不同的编译标志。像下面这样的东西。可以吗?
#for a_OBJS
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(a_CFLAGS) -c $< -o $@
#for b_OBJS
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(b_CFLAGS) -c $< -o $@
您可以使用 target-specific variables:
$(a_OBJS) : EXTRA_FLAGS = -DA_OBJ
$(b_OBJS) : EXTRA_FLAGS = -DB_OBJ
$(OBJ)/%.o: $(SRC)/%.c
$(CC) $(INCLUDES) $(EXTRA_FLAGS) -c $< -o $@