我在我的Makefile標籤如下:在一個Makefile有條件地定義一個變量
%.o: %.c
CFLAGS="$(CFLAGS)"
$(CC) -c $(CFLAGS) $(STACK_OPTS) $(SIO_FLAGS) $(IO_FLAGS) $(LOCAL_INCLUDES) $(OAK_FLAGS) -DSYNC_WRITE $(OAK_LIBS) $<
$(CC) -MM $(CFLAGS) $(OAK_FLAGS) $(LOCAL_INCLUDES) $^ > $*.d
@cp -f $*.d $*.d.tmp
@sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \
sed -e 's/^ *//' -e 's/$$/:/' >> $*.d
@rm -f $*.d.tmp
我需要有條件地添加其他變量定義爲一組.C源文件並將它設置只爲那些那些。可以這樣做嗎?我認爲它會在CFLAGS =行之後插入。
任何想法?我想定義的變量是FOO_OTO。只需要被定義爲不設置任何值。
實際上,'CFLAGS'賦值什麼也不做。配方中的每一行都在其自己的子shell中執行;因此,shell分配'CFLAGS'並退出,在父項中保持該值不變。 – tripleee
作爲一種解決方法,您是否可以將賦值添加到需要它的文件的'$ *。d'中? (我假設這個文件包含目標的依賴信息。) – tripleee