¿Cómo puedo hacer que makefile / shell script call /Applications/application.app?

4

OS Mac OS X 10.6.6 emacs 23.2.1

Actualmente estoy intentando instalar Magit en emacs de carbono utilizando la solución de fabricación propuesta. Soy casi un completo makefile newby, así que podría estar en el camino equivocado por completo. Makefile muestra:

%.elc: %.el
$(BATCH) --eval '(byte-compile-file "$<")'

que se amplía a:

emacs -batch -q -no-site-file -eval "(setq load-path (cons (expand-file-name \".\") load-path))" --eval '(byte-compile-file "magit.el")'

Lo que sí entiendo. Sin embargo, vuelve con:

Cannot open load file: subst-ksc

Lo que después de un poco de google revela algunas bibliotecas faltantes. También me di cuenta de que los emacs a los que se hace referencia en el comando expandido apuntan a /usr/bin/emacs , que es un archivo grande, no veo los directorios normales lisp / site-lisp / etc. También sé que mis emacs preferidos son emacs de carbono ubicados en /Application/Emacs.app que se abren al hacer clic en ellos, o alternativamente, puedo abrirlos con el terminal:

open /Application/MyApp.app

Finalmente, la pregunta del título: ¿Cómo puedo crear Makefile usando Emacs.app en el directorio de aplicaciones? Espero que alguien aquí conozca la respuesta, o pueda indicarme alternativas.

saludos, Jeroen.

    
pregunta dr jerry 28.02.2011 - 21:05

2 respuestas

5

Para usar Emacs.app desde shell, necesita el ejecutable de Unix incrustado en él. Es en Emacs.app/Contents/MacOS/Emacs (no tengo esta versión de emacs, por lo que la capitalización puede diferir)

Una alternativa es usar open para iniciar cualquier aplicación desde el área de trabajo usando open.

por ejemplo

open -a Emacs.app --args <all those passed to emacs>
    
respondido por el Mark 28.02.2011 - 21:36
3

Estoy respondiendo una pregunta anterior en caso de que alguien más pase por ella a través de Google como lo hice yo.

Como señaló Mark, para compilar un archivo usando el ejecutable Emacs.app, debe reemplazar emacs o /usr/bin/emacs en el archivo Makefile con /Applications/Emacs.app/Contents/MacOS/Emacs . Creo que, en general, los archivos compilados por bytes no son compatibles con las diferentes versiones de Emacs, por lo que al instalar un paquete para usar con Emacs.app, debe compilarlo a través de este ejecutable, no con el /usr/bin/emacs instalado por Apple ( que es una versión 22 de emacs en mi sistema 10.6).

Si necesita ejecutar /usr/bin/emacs por alguna otra razón, tenga cuidado de que EMACSLOADPATH no contenga archivos que pertenezcan a un Emacs más nuevo. Esta es una causa potencial de mensajes de error como

Cannot open load file: subst-ksc

Invocando emacs desde el shell como

EMACSLOADPATH=/usr/share/emacs/22.1/leim:/usr/share/emacs/22.1/lisp:/usr/share/emacs/22.1/site-lisp emacs

debería hacer el truco.

¡Espero que esto ayude a alguien más!

    
respondido por el Jon O. 30.09.2011 - 18:24

Lea otras preguntas en las etiquetas