GNU Automake 패키지에서 특정 파일을 빌드하는 방법은 무엇입니까?

GNU Automake 패키지에서 특정 파일을 빌드하는 방법은 무엇입니까?

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

이것은 질문에 대한 대답은 아니지만 가능한 한 좋은 것 같습니다 ...

관련 정보