2014-01-10 1 views
2

일부 libs를 GNU autotools로 변환하고 Oracle Pro C 전처리기를 통합하기가 어렵습니다. 다음과 같이GNU autotools 프로세스와 Oracle Pro C 전처리 기 사용

워크 플로는 다음과 같습니다 .pc => .c => o. => .so/.a/binary

내가 빌드 프로세스에 추가 사전 단계를 추가하는 방법을 automake는 설명서에 어떤 힌트를 찾을 수 없습니다. SOURCES=file.pc을 수정하려고했지만 autoreconf가 C 파일이 누락되었다고 불평합니다. 나는 SUFFIXES = .pc .c .o

.pc.c: 
     $(PROC) iname=$< 

을 추가 한하지만 대상이 무시됩니다 - 그리고 불리는 경우 직접 $<가 해결되지 않습니다.

어떻게해야합니까? 이 같은

+0

어떤'make' 프로그램이 사용되고 있습니까? GNU make 나 다른 make인가? – ldav1s

+0

@ ldav1s, 둘 다 가지고 있습니다. 나는 그것을'Makefile.am'에 넣으려고했다. 'make' 버전이 차이를 만듭니다. –

답변

0

뭔가 :

%.c : %.pc 
     $(PROC) iname=$< 

foo.o : foo.pc 

는 GNU 만들를 위해 작동하는 것 같다. 테스트 할 다른 종류의 make가 없습니다. IIRC, 나는

.SUFFIXES : .pc 
.pc.c: 
     $(PROC) iname=$< 

이 일할 수있는 생각하지만, 나는 이것을 테스트하기 위해 다른 make이 없습니다.

나는 이것을 시험해 보았고, 당신이 원하는 방식으로 행동했다.

foo_SOURCES= $(top_srcdir)/src/main.c $(top_srcdir)/src/foo.pc 

SUFFIXES : .pc 
.pc.c: 
     $(PROC) iname=$< 
+0

두 번째 것은 automake가이를 받아 들일 수 없으므로 확실하게 ** ** 작동하지 않습니다! 나는 이미 처음 시도했지만 그 연장은하지 않았다. 문제는 automake에게 생성 된 Makefile이 Pro C를 먼저 실행 한 다음'cc'를 실행해야한다는 것입니다. –