2011-12-18 2 views
0

정확히 내가 autoconf/automake/libtoolize 등으로 심각하게 돌아 다니면서 내 질문이 무엇인지 확신 할 수 없다. 우리 중 몇몇은 mbsystem을 자동 처리하려고 시도하고있다. 내가 NC-설정을 사용하는 netCDF의 설정을 개선하기 위해 노력하고있어netcdf 4.x의 autoconf 설정을 올바르게 작성하는 방법은 무엇입니까?

https://bitbucket.org/schwehr/mbsystem

있지만, 제대로이 작업을 수행하는 방법을 확실하지 오전 : 여기 날짜로 작업의 환매 특약을 위로 던져했습니다. 나는 configure.in에서 일하고있다. gdl netcdf check에서 가져온 것처럼 INCLUDES="$INCLUDES ``$nc_config --cflags``" (부정확 한 백 틱을 용인하십시오) 이후에 AC_CHECK_HEADER ("netcdfcpp.h")가있는 헤더를 찾을 수없는 것 같습니다. 경로를 nc-config --cflags에서 업데이트하는 올바른 방법은 무엇입니까?

http://gnudatalanguage.cvs.sourceforge.net/viewvc/gnudatalanguage/gdl/configure.in?revision=1.121

나는 다음 AX_PATH_GENERIC을 사용하고 실제로 펑키 비표준으로 작동하는 netCDF의 확인을 만드는 점점 나아지고에 m4_include([m4/ax_path_generic.m4])

Running autoconf ... 
configure.in:29: error: possibly undefined macro: AC_SUBST 
     If this token and others are legitimate, please use m4_pattern_allow. 
    See the Autoconf documentation. 
configure:12992: error: possibly undefined macro: AC_MSG_RESULT 

어떤 도움이 오류에 박히면서 노력 설치 nc-config를 통해 위치를 지정하고 m4 디렉토리에 매크로를 올바르게 두는 방법을 알아 내면 큰 도움이됩니다.

이 작업을 수행하는 패키지에 대한 포인터는 매우 도움이 될 것입니다. 필자는 netcdf, gdal, geos 및 gdl 소스를 살펴 보았습니다. 그리고 문어와 같은 일들이 netCDF의 4.x를위한 핑크와 ... NC-설정을 사용하지 않는 http://www.tddft.org/trac/octopus/browser/trunk/m4/netcdf.m4

현재 설정을 확인 netCDF의 :

nc-config --cflags --libs 
-I/sw/opt/netcdf7/include -I/sw/include 
-L/sw/opt/netcdf7/lib -lnetcdf 

감사합니다!

답변

0

은 "올바른"방법을 타사 M4 매크로를 사용하는 것입니다 (일반적으로 automake를 통해) aclocal을 사용하는 aclocal.m4를 생성합니다. 당신이 automake에를 사용하는 경우, 단지 Makefile.am에

 
ACLOCAL_AMFLAGS = -I m4 

를 추가하고 (configure.in 이름을 바꾼 후) configure.ac에

 
AC_CONFIG_MACRO_DIR([m4]) 

을 넣어.

automake를 사용하지 않는 경우 aclocal을 호출 할 때 '-I m4'를 추가하십시오. aclocal을 사용하지 않는다면 매크로의 정의를 aclocal.m4 끝에 추가해야합니다 (파일을 덮어 쓰지 않으므로 aclocal을 실행하지 않도록 조심하십시오).

그런 스크립트를 사용하기 때문에 conf 스크립트를 사용하여 빌드를 수행하는 깨끗한 방법의 좋은 예는 근본적으로 잘못된 접근 방식입니다. 약간 더 깔끔한 접근법은 PKG_CHECK_MODULES를 통해 사용자 정의 스크립트 사용을 중지하고 pkg-config를 사용하는 것입니다. 그러나이를 수행하는 가장 깨끗한 방법은 사용자를 교육하는 것입니다. 사용자가 펑키 한 비표준 위치에 라이브러리를 설치하려면 LDFLAGS 및 CPPFLAGS를 적절하게 설정하는 데 충분한 교육을 받아야합니다.

관련 문제