Bar라는 변수가 있는 Foo라는 makefile이 있다고 가정해 보겠습니다.
Foo에는 다음이 있습니다.
Bar := /some/initial/path
Other_var := ${Bar}/more/paths
그런 다음 기본 makefile에서 Foo를 사용합니다.
include Path/to/Foo
하지만 Bar의 값이 Foo에서 사용되는 값이 되도록 기본 makefile에 Bar를 어떻게 설정할 수 있습니까? eval을 사용해 보았지만 :=
정말 어려운 일이었습니다. 큰 목표는 Foo의 소스를 변경하는 것이 아닙니다.
답변1
내 GNU make 4.0 온라인 정보에 따르면 override
할당에 키워드를 사용하면 일반적으로 명령줄을 재정의하는 데 사용됩니다.변수=값설정하면 이 키워드 없이 추가 할당으로 값이 override
변경 되지 않습니다.
따라서 기본 makefile에서 다음을 시도해 볼 수 있습니다.
override Bar := myvalueforbar
include Path/to/Foo
답변2
포함하기 전에 정의 하면 Bar
열을 사용할 수 있습니다 .Foo
Makefile
Foo
예를 들어, Makefile
각 Python 패키지에는 다음이 포함되어 있습니다(물론 각 Makefile의 처음 두 줄은 다릅니다).
UTILNAME:=yaml
PKGNAME:=ruamel.yaml
VERSION:=$(shell python setup.py --version)
include ~/.config/ruamel_util_new/Makefile.inc
공통 루틴 에서 Makefile.inc
배포 파일을 생성하는 방법을 소개합니다.
DIST:=dist/$(PKGNAME)-$(VERSION).tar.gz
WHL:=dist/$(PKGNAME)-$(VERSION)-py*-any.whl
$(DIST): $(SRC)
make check
python setup.py sdist