한 Makefile.am
파일에는 다음 항목이 표시됩니다.
EXTRA_DIST = bootstrap \
ChangeLog \
config/config.rpath \
m4/ax_pthread.m4 \
m4/iconv.m4 \
MacOSX/someheader.h
[...]
이게 무슨 뜻인지 궁금합니다만,문서"배포"가 실제로 무엇을 의미하는지에 대한 정의가 없는 것 같습니다.
"컴파일된 라이브러리"를 의미하는 것은 아닙니다. 그렇죠? 일종의 소스코드 배포인가요? (이게 왜 필요한가요? git이나 zip 루트 폴더를 사용할 수 있나요?)
누군가가 이것을 명확히 할 수 있기를 바랍니다.
답변1
문서에서는
dist
생성된 규칙은 gzip으로 압축된 파일 및/또는 배포용 아카이브의 다른 버전을Makefile.in
생성하는 데 사용될 수 있습니다.tar
'배포'란 배포하는 행위를 의미합니다.
목표는 dist
프로젝트 관리자가 실행할 수 있도록 생성된 Makefile에 대상을 생성하는 것 입니다.
make dist
출판에 적합한 아카이브를 확보하고,즉최종 사용자(또는 최종 빌더)가 전체 Autoconf 프로세스를 실행할 필요 없이 일반적인 ./configure && make
.
EXTRA_DIST
일반적으로 이러한 아카이브에 포함되지 않는 파일도 전송할 수 있도록 나열합니다.
기본 개념은 관리자에게 있어서 프로젝트의 소스 코드는 Autoconf/Automake/etc에서 기대하는 소스 코드라는 것입니다. 그러나 이는 소스에서 프로젝트를 컴파일하려는 대부분의 사람들에게 즉시 유용하지는 않습니다. 따라서 프로젝트 관리자는 버전을 출시할 때 "원시" 소스 코드를 배포하지 않고 configure
생성된 스크립트와 다양한 지원 도구가 포함된 "배포 아카이브"를 배포합니다.
답변2
"배포"의 종류는 여기https://www.gnu.org/software/automake/manual/html_node/The-Types-of-Distributions.html
tar.gz .zip 등과 같은 파일만 가능합니다. 소스코드를 수정하면 인터넷에서 얻은 소스코드만 이용해서 tar.gz를 쉽게 빌드할 수 있다는 생각이다. 이러한 파일에는 ./configure로 생성되어야 하기 때문에 Makefile이 아닌 소스 코드만 포함됩니다.