patsubst on makefile

后端 未结 2 1908
耶瑟儿~
耶瑟儿~ 2020-12-28 22:35

I have to create different *.o files from a same set of *.c using various CFLAGS. I wanted to use patsubst to generate different *.o files from same *.c. I am doing somethin

2条回答
  •  一向
    一向 (楼主)
    2020-12-28 23:21

    Use patsubst to make lists of the objects that you want to build, and then use separate rules for each type of build.

    Something like this:

    SRC_FILES = source1.c source2.c 
    
    OBJ_FILES_O0 = $(patsubst %.c,%_O0.o,$(SRC_FILES)) 
    OBJ_FILES_O2 = $(patsubst %.c,%_O2.o,$(SRC_FILES))
    
    CFLAGS_O0 := -O0 
    CFLAGS_O2 := -O2
    
    all: $(OBJ_FILES_O0) $(OBJ_FILES_O2)
    
    $(OBJ_FILES_O0): %_O0.o: %.c
        $(CC) $(CFLAGS_O0) -c $< -o $@
    
    $(OBJ_FILES_O2): %_O2.o: %.c
        $(CC) $(CFLAGS_O2) -c $< -o $@
    

提交回复
热议问题