Debian
一個簡單的 Debian Repo 的 Makefile
我正在為客戶製作一個非常基本的 Debian 儲存庫。從 bash 腳本開始,但決定使用 Makefile 消除重複工作。我已經敲定了一個有效的 Makefile,但它只有在我
make all
. 出於某種原因,順子make
只會建構第一個 deb。make clean
什麼也沒做。我究竟做錯了什麼?MFGR:=MyCoolEmployer MAJOR:=1 MINOR:=0 REVISION:=1000 VERSION:=$(MAJOR).$(MINOR)-$(REVISION) MODELS:=SpiffyModel1 SpiffyModel2 COMMON:=common SOFT_TARGETS:=$(COMMON) $(MODELS) SOFT_TARGET_FOLDERS:=$(patsubst %, $(MFGR)-%_$(VERSION), $(SOFT_TARGETS)) DEBs := $(patsubst %, %.deb, $(SOFT_TARGET_FOLDERS)) REPO_DEBs :=$(patsubst %, Repo/binary/%, $(DEBs)) REPO=repo.zip PACKAGES_GZ := Repo/binary/Packages.gz %.deb: % dpkg-deb --build $< $(REPO_DEBs): $(DEBs) cp $^ Repo/binary/ $(PACKAGES_GZ): $(REPO_DEBs) dpkg-scanpackages Repo/binary /dev/null | gzip -9c > $@ $(REPO): $(REPO_DEBs) $(PACKAGES_GZ) cd Repo; zip -r -v -0 ../$@ . ; cd .. TARGETS: $(REPO) $(PACKAGES_GZ) $(REPO_DEBs) $(DEBs) all: TARGETS clean: rm -f $(TARGETS)
這假定包以名為 MyCoolEmployer -PACKAGENAME _1.0-1000的文件夾形式存在
您的問題包含自己的答案。預設情況下,
make
僅處理Makefile
. 您需要先輸入“全部”條目。
“make clean”什麼都不做,因為 $(TARGETS) 不是變數,你從來沒有將它設置為任何值。