我希望在makefile中应用一个补丁。如果补丁尚未应用,则这样做没有问题。但是,如果原始文件已经被打了补丁,那么在进行make后,它会导致makefile在完成之前退出。
Makefile --
all:
echo "starting patch"
patch -N < patchfiles/foo.patch
echo "patched"
尝试在文件已经打过补丁后运行的结果如下--
usr-mbp:makefile usr$ make
echo "starting patch"
starting patch
patch -N < patchfiles/foo.patch
patching file foo
Reversed (or previously applied) patch detected! Skipping patch.
1 out of 1 hunk ignored -- saving rejects to file foo.rej
make: *** [all] Error 1
我以为使用-N选项只是跳过补丁而不会导致任何错误。显然我错了。有什么想法可以修复makefile,使其不会将跳过的补丁解释为错误吗?
谢谢!
编辑:
如果我想在打补丁之前进入一个目录,则使用-patch无效。这是结果:
Makefile:
all:
echo "starting..."
cd tmp && \
-patch -N < ../patchfiles/Makefile.linux-p3041-3_0.patch
echo "finished."
结果:
usr-mbp:makefile usr$ make
echo "starting..."
starting...
cd tmp && \
-patch -N < ../patchfiles/Makefile.linux-p3041-3_0.patch
/bin/sh: line 1: -patch: command not found
make: *** [all] Error 127
patch -R
命令成功了,那么你就可以跳过真正的操作了。 - tripleeecd
前面放上减号。 - tripleeePKGBUILDs
的特殊之处吗?这是一个通用的Makefile工具,因此适用于任何使用标准Makefile
的东西。 - tripleee