Come posso avere chiamata script makefile / shell /Applications/application.app?

4

Sistema operativo Mac OS X 10.6.6 emacs 23.2.1

Attualmente sto provando a installare magit su carbonio emacs usando la loro soluzione make proposta. Sono un makefile quasi completo newby quindi potrei essere del tutto sulla strada sbagliata del tutto. Display Makefile:

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

che viene espanso in:

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

Quello che capisco. Comunque torna con:

Cannot open load file: subst-ksc

Ciò che dopo un po 'di googlatura rivela alcune librerie mancanti. Ho anche capito che l'emacs referenziato nel comando espanso punta a /usr/bin/emacs che è un grande file, non vedo le normali directory lisp / site-lisp / etc. So anche che il mio emac preferito è emac di carbonio situato in /Application/Emacs.app che si apre semplicemente quando si fa clic su di esso, o in alternativa, posso aprirlo con il terminale:

open /Application/MyApp.app

Infine la domanda per il titolo: come posso creare Makefile usando Emacs.app nella directory delle applicazioni? Spero che qualcuno qui conosca la risposta o possa indicarmi le alternative.

saluti, Jeroen.

    
posta dr jerry 28.02.2011 - 21:05
fonte

2 risposte

5

Per usare Emacs.app dalla shell è necessario l'eseguibile Unix incorporato al suo interno. È su Emacs.app/Contents/MacOS/Emacs (non ho questa versione di emacs in modo che le maiuscole possano differire)

Un'alternativa è usare open per avviare qualsiasi app dallo spazio di lavoro usando open.

es.

open -a Emacs.app --args <all those passed to emacs>
    
risposta data 28.02.2011 - 21:36
fonte
3

Sto rispondendo a una domanda precedente nel caso in cui qualcun altro si trovasse su di esso tramite Google come ho fatto io.

Come sottolineato da Mark, per compilare i byte di un file utilizzando l'eseguibile Emacs.app devi sostituire emacs o /usr/bin/emacs nel Makefile con /Applications/Emacs.app/Contents/MacOS/Emacs . In generale, credo che i file compilati da byte non siano compatibili tra le diverse versioni di Emacs, quindi quando si installa un pacchetto per l'uso con Emacs.app si dovrebbe compilare in byte usando questo eseguibile, non con il valore predefinito di installazione di Apple /usr/bin/emacs ( che è una versione 22 emacs sul mio sistema 10.6).

Se hai bisogno di eseguire /usr/bin/emacs per qualche altro motivo, fai attenzione che EMACSLOADPATH non contenga file appartenenti a un nuovo Emacs. Questa è una potenziale causa di messaggi di errore come

Cannot open load file: subst-ksc

Invocazione di emacs dalla shell come

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

dovrebbe fare il trucco.

Spero che questo aiuti qualcun altro!

    
risposta data 30.09.2011 - 18:24
fonte

Leggi altre domande sui tag