2013-10-26 8 views
1

다른 디렉토리에 소스 파일이 있고 소스 파일을 사용하여 라이브러리를 만들고 싶다면 * .o, * .po 및 * .So 파일을 로컬 디렉토리에 갖고 싶습니다. 이것을 성취하는 방법이 명확하지 않습니다. bsd.lib.mk의 변환 규칙은 항상 .o를 소스 디렉토리로 지정합니다.FreeBSD Makefile이 객체 (* .o)를 다른 디렉토리에 저장하도록 어떻게 지정합니까?

$ {CC} -c의 결과를 로컬 디렉토리에 저장하려면 어떻게해야합니까?

답변

1

bsd.lib.mk 파일에는 bsd.obj.mak가 포함되어 있으므로 MAKEOBJDIR 환경 변수를 사용할 수 있습니다.

편집 : 당신이라고 만드는 방법 통제 할 수없는 경우, 하지 사용 bsd.lib.mk을하고 메이크 파일에 명시 적 종속성을 만들;

foo.o: ../bar/foo.c 
+0

env MAKEOBJDIR =를 사용하십시오. 작동하지만 make 시스템에서 make가 호출되는 방식을 변경할 수 없습니다. 다른 아이디어? –

+0

@NOOneinParticular : 업데이트 참조 –