我有一個make文件,其中有下面幾行:我不明白,在make文件中的正則表達式
EXECUTABLE = $(ONLINE_HOME)/bin/sec2ici
OBJECTS = $(ONLINE_HOME)/src/dte_mq.o \
$(ONLINE_HOME)/src/sec2ici.o
ALLINCL = -I$(ONLINE_HOME)/inc -I$(MQM_HOME)/inc -I$(ORACLE_HOME)/rdbms/public
MQLIB = -L${MQM_HOME}/lib64 -lmqm -lmqmcs -lmqmzse
MYLIB =
ORALIB = -L${ORACLE_HOME}/lib/ -lclntsh
ALLLIB = $(MQLIB) \
$(ORALIB) \
$(MYLIB) \
-lnsl -ldl
CFLAGS = -g \
$(ALLINCL)
all: $(EXECUTABLE)
COMPILE.c = $(CC) $(CFLAGS)
.SUFFIXES: .o
.c.o:
$(COMPILE.c) -c $*.c -o ${<:.c=.o}
能否請您給我解釋一下$後的正則表達式(COMPILE.c)手段?
另外,在src
目錄中只有20個文件中只有4個必要文件的規則在哪裏?
沒有reqular表達 –
我的猜測:抓住所有的C文件並將它們編譯爲與C文件相同名稱的O文件,只是不同的擴展名。 – tilz0R
我不確定這件事情是否真的有效。 '$ *'是模式中'%'匹配的任何內容,但是這個規則沒有'%'。 – aragaer