我想從makefile寫一個規則文件(makefile),我用echo命令來做到這一點, 但是當我用$來到部件時,我無法弄清楚如何做對。從makefile寫入makefile的最佳方法是什麼
我想:
$(shell echo -e "#!/usr/bin/make -f \nPYTHON3=\"$(shell py3versions -vr)\"" >>text.txt
但我得到錯誤信息說:
py3versions: error parsing Python-Version attribute
我想寫一個規則文件中的代碼:
#!/usr/bin/make -f
PYTHON3=$(shell py3versions -vr)
%:
dh [email protected] python3 --buildsystem=python_distutils
override_dh_auto_build: $(PYTHON3:%=build-python%)
......
任何人都可以給關於我應該使用哪個命令來創建這樣的文件的一些建議? 如果使用echo命令,輸入$是什麼方式?
要更新我的情況:
我想建立一個python Debian軟件包。上面顯示的規則文件是構建它的方式。 (調用其他功能,如
python setup.py sdist
和
py2dsc,
那麼這個規則(它被稱爲規則,而不是生成文件)後,當然文件將被調用來建立Debian包。
的規則文件可以通過py2dsc命令自動生成,但我需要修改它以使其適用於不同版本的python(比如說python2。*和python3。*)。所以我想只是從makefile中編寫rules文件(這是將調用python setup.py sdist和py2dsc和這個規則文件)爲python2。*和python3。*。
現在我正面臨這個問題:我如何以與規則文件相同的方式編寫shell命令。非常感謝!
這裏增加的信息並沒有多大幫助。上面顯示的makefile沒有辦法工作,所以不能成爲「構建它的方式」。例如,先決條件'$(PYTHON3:%= build-python%)'不能工作。它會擴展到'build-python $(shell py3versions -vr)'這個值,正如我們所見,它會失敗,因爲'-r'選項需要一個參數。你真的想在這裏跑什麼? _successful_調用'py3versions'會是什麼樣子? – MadScientist
爲了讓我們兩個人更容易:忘掉py3versions命令(它通過debuild命令調用而不是make,當我使用debuild時,規則文件運行良好)。假設我們有一個shell命令DATE = $(shell date)(而不是那個PYTHON3 = $(shell py3versions -vr)。我在define部分嘗試了DATE = $(shell date),我得到了命令的輸出日期規則文件。但我真正想要的只是DATE = $(shell日期)(不是執行輸出)可以完成嗎?謝謝。 – user1558064
如果你問的是如何顯示靜態字符串'$(shell date)'而不是運行函數'$(shell date)',那就是我在下面的回答中解釋的:escape $' ,那麼make就不會擴展它:'echo'PYTHON3 = $$(shell date)'' – MadScientist