基於測試版在gnu make copy many files to a single location回答,我有工作規則,從不同的路徑數據複製到一個子目錄./figures/在我的build目錄如何解決gnu使用vpath的規則將文件複製到不同的目錄時,該目錄是./?
ORIG_FILE_DIRS += ..
LOCAL_FILES += figures/myfig.png
DESTDIR := figures
all : $(LOCAL_FILES)
vpath %.png $(ORIG_FILE_DIRS)
$(DESTDIR)/%.png: %.png
mkdir -p $(DESTDIR)
cp $< [email protected]
這很好地工作提供的數字是不是./ - 對於例如,修改該嘗試膠乳.sty文件(我需要在當前工作目錄)從備用路徑複製,我已經嘗試:
ORIG_FILE_DIRS += ..
LOCAL_FILES += mycommon.sty
DESTDIR := ./
all : $(LOCAL_FILES)
vpath %.sty $(ORIG_FILE_DIRS)
$(filter %.sty,$(LOCAL_FILES)) : $(DESTDIR)/%.sty: %.sty
mkdir -p $(DESTDIR)
cp $< [email protected]
(濾波器是要明確的,因爲我試圖在./中有一些其他的.sty文件)
這給了我
make: Circular mycommon.sty <- mycommon.sty dependency dropped.
make: Nothing to be done for `all'.
我不知道該如何解決這個問題。我已經試了一個明確的路徑依賴:
$(filter %.sty,$(LOCAL_FILES)) : $(DESTDIR)/%.sty: ../%.sty
mkdir -p $(DESTDIR)
cp $< [email protected]
,但仍然得到了循環依賴關係(針對../mycommon.sty)這樣做。