GNU Automake를 사용하는 소스 코드 패키지가 주어지면 일반적인 빌드는 다음과 같습니다.
cd ${srcdir}
./congigure
./make
모든 파일 대신 단일 파일을 빌드하려면 make
일반적으로 다음이 허용됩니다.
$ make path/to/file
그러나 이는 오류를 반환합니다.
make: *** No rule to make target 'path/to/file'. Stop.
필요한 파일은 자체 makefile이 포함된 하위 디렉터리에 있습니다. 해당 하위 디렉터리로 이동하여 ./configure && make file
그곳에서 작업을 수행하고, 각 오류에 대해 누락된 종속성을 파악하고 make
, 유사한 작업을 수행하여 해당 종속성을 제공하고, 필요한 파일이 성공적으로 생성될 때까지 프로세스를 반복할 수 있습니다 make
.
하지만 확실히 더 쉬운 방법이 있을까요...?
그렇다면 일반적인 Linux 패키지가 GNU Automake에 의해 깔끔하게 구축되었다고 가정하면 단일 파일(특히 바이너리 실행 파일)을 구축하도록 지시할 수 있습니까?
답변1
하위 디렉터리에 makefile이 있으면 해당 makefile을 호출해야 할 수도 있습니다.
make -C path/to file
답변2
제가 생각할 수 있는 최선의 방법은 루프를 사용하여 for
종속 하위 디렉터리를 구축한 다음 해당 디렉터리에서 파일을 구축하는 것입니다.
for lib in dependency1 dependency2 dependency3
do
cd ${srcdir}/libs/${lib}
./configure --prefix=/usr
make LDFLAGS+=-lstdc++
done
cd ${srcdir}/libs/directory
./configure --prefix=/usr
--localstatedir=/var \
--mandir=/usr/share/man
make LDFLAGS+=-lstdc++ file
이것은 질문에 대한 대답은 아니지만 가능한 한 좋은 것 같습니다 ...