2011-05-17 15 views
5

tengo Xcode 3.2 instalado en /Xcode3.2, e hicieron no instalar nada en/desarrollador. Cuando deseo hacer el desarrollo, comienzo a una concha de la siguiente maneraaclocal/autoconf informa que falta m4sugar.m4 en Mac OS X?

alias sysroot='PATH=${PATH}:${XCODE}/usr/bin CFLAGS=--sysroot\ ${SDK_ROOT} CXXFLAGS=--sysroot\ ${SDK_ROOT} LDFLAGS=--sysroot\ ${SDK_ROOT} CPPFLAGS=--sysroot\ ${SDK_ROOT}' 

donde XCODE es /Xcode3.2 y SDK_ROOT es ${XCODE}/SDKs/MacOSX10.6.sdk. Esto maneja la mayoría de las rarezas de tratar de construir proyectos. Sin embargo, hace poco encontré con un caso en el que quería volver a ejecutar aclocal y obtuve el siguiente error:

autom4te: m4sugar/m4sugar.m4: no such file or directory 
aclocal: /Xcode3.2/usr/bin/autom4te failed with exit status: 1 

Especificación -I banderas a aclocal para apuntar a la alternativa /Xcode3.2/usr/share/aclocal-1.10 y /Xcode3.2/usr/share/aclocal no parece ayudar. Si uso --verbose, y luego volver a ejecutar el comando m4 enumera de forma manual con una bandera -I añadido para apuntar a /Xcode3.2/usr/share/autoconf, a continuación, que funciona, pero me parece que no puede canalizarla a través de aclocal. Además la variable de entorno que M4PATH los man páginas para m4 sugieren me deja añadir rutas no parece hacer una diferencia. (Y establecer una variable de entorno sería mi configuración preferida, solo para poder agregarla al alias anterior.)

Hasta ahora, no he encontrado una solución que no sea el procedimiento "sucio" de crear un enlace simbólico de /usr/share/autoconf a /Xcode3.2/usr/share/autoconf. ¿Hay alguna otra forma mejor?

NOTA: La razón por la que sigo tales líneas claras entre las instalaciones de las herramientas de desarrollo y el sistema operativo es proporcionar compilaciones-OS cruz fiables (por ejemplo, por lo que las herramientas de una versión de Xcode no perturban el comportamiento de construcción de otra versión de Xcode.)

Respuesta

3

no estoy seguro de entender lo que en su configuración hace que autom4te no encontrar el archivo. ¿Se mudó autom4te al directorio Xcode3.2/ después de que se instaló inicialmente en /usr/bin/? No me resulta claro a partir de su pregunta (no estoy familiarizado con Xcode, ¿está incluido en el autoconf?).

De todos modos ... La ubicación donde autom4te busca m4sugar.m4 está codificada en autom4te cuando está instalado el paquete Autoconf. De hecho, es aún más sutil: la ruta de búsqueda se configura en DATADIR/autom4te.cfg, pero el valor de DATADIR está codificado en autom4te. Se puede cambiar el valor de DATADIR estableciendo una variable de entorno como export AC_MACRODIR=/Xcode3.2/usr/share/autoconf, pero si nos cambiaron a /usr/share/autoconf/autom4te.cfg/Xcode3.2/usr/share/autoconf/autom4te.cfg, el contenido de ese archivo todavía apuntará a /usr/share/autoconf/.

Puede tener un ~/.autom4te.cfg local para agregar más --prepend-include líneas, pero esto es crudo también. En mi humilde opinión, la solución más simple si desea instalar Autoconf en Xcode3.2/ es instalarlo con ./configure --prefix /Xcode3.2 && make && make install. Tarda menos de medio minuto.

+0

autom4te y m4 y todas estas herramientas se instalan junto con Xcode cuando instalas el Herramientas de desarrollador proporcionadas por Apple en Mac OS X. Esto contra instalar todas ellas a través de fink o darwinports, etc. Puede optar por que coloquen copias útiles (¿quizás enlaces?) En/usr/lo que sea, pero todas ellas viven en/Xcode3 .2- o/rutas con prefijo desarrollador en su lugar. Por lo tanto, no soy responsable de la configuración de autoconf: todo es Apple. Parece que necesitan parametrizar su autom4te.cfg cuando lo instalan en una ubicación no estándar (por ejemplo, /Xcode3.2). La reparación de .cfg hace que funcione. ¡Gracias! –

+0

El error de sugerencia para parametrizar sus rutas autom4te.cfg se ha archivado como rdar: // 9454686. –

6

Para aclarar el punto de referencia como se identifica en la respuesta de las AVD y el comentario de Nathan en él:

Si tiene autoconf instalado en la ubicación predeterminada (bajo /Developer) como parte de XCode 4.3, tendrá que editar /Developer/usr/share/autoconf/autom4te.cfg ya que tiene varios caminos equivocados puso en que no incluya el directorio /Developer:

(Las ediciones se ilustran como una especie de diff que he encontrado en el Google cache de this post)

*** /Developer/usr/share/autoconf/autom4te.cfg 2011-10-28 00:15:15.000000000 -0700 
--- /Developer/usr/share/autoconf/autom4te.cfg 2011-10-28 00:14:33.000000000 -0700 
*************** 
*** 99,101 **** 
begin-language: "Autoconf-without-aclocal-m4" 
! args: --prepend-include /usr/share/autoconf 
args: --cache=autom4te.cache 
--- 99,101 ---- 
begin-language: "Autoconf-without-aclocal-m4" 
! args: --prepend-include /Developer/usr/share/autoconf 
args: --cache=autom4te.cache 
*************** 
*** 126,128 **** 
begin-language: "Autotest" 
! args: --prepend-include /usr/share/autoconf 
args: autotest/autotest.m4f 
--- 126,128 ---- 
begin-language: "Autotest" 
! args: --prepend-include /Developer/usr/share/autoconf 
args: autotest/autotest.m4f 
*************** 
*** 140,142 **** 
begin-language: "M4sh" 
! args: --prepend-include /usr/share/autoconf 
args: m4sugar/m4sh.m4f 
--- 140,142 ---- 
begin-language: "M4sh" 
! args: --prepend-include /Developer/usr/share/autoconf 
args: m4sugar/m4sh.m4f 
*************** 
*** 152,154 **** 
begin-language: "M4sugar" 
! args: --prepend-include /usr/share/autoconf 
args: m4sugar/m4sugar.m4f 
--- 152,154 ---- 
begin-language: "M4sugar" 
! args: --prepend-include /Developer/usr/share/autoconf 
args: m4sugar/m4sugar.m4f 
+0

En xcode 6 y OSX 10.9.4 no funcionó, pero esta publicación y las publicaciones anteriores dieron pistas valiosas. Lo que funcionó fue: brew uninstall autoconf luego brew install autoconf que dio algunas instrucciones y luego ejecuté brew link --overwrite autoconf. En OSX 10.9.4 no había/Developer/usr/share/autoconf porque está bajo/usr/local/Cellar/autoconf – ervinbosenbacher

8

llegué alrededor de este mediante la creación de un nuevo enlace simbólico

sudo ln -s /Developer/usr/share/autoconf /usr/share 
1

En el entorno Xcode4:

sudo ln -s /Xcode4/usr/share/autoconf /usr/share/autoconf 
0

Si ha utilizado MacPorts para instalar mucho, es probable que tenga una instalación de autoconf que luego agregará en autom4te y comenzará a jugar con sus rutas. Si, como yo, te estás moviendo de MacPorts, deberás desinstalar autoconf (sudo port uninstall autoconf) antes de realizar ediciones como las sugeridas por Ergwun