Mac os x: How to have makefile reference /Applications/application

866 views Asked by At

OS Mac OS X 10.6.6 emacs 23.2.1

I'm currently trying to install magit on carbon emacs using their proposed make solution. I'm an almost complete makefile newby so I might be on the complete wrong path altogether. Makefile displays:

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

which gets expanded to:

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

What I do understand. However it comes back with:

Cannot open load file: subst-ksc

What after a bit of googling reveals some missing libraries. I also realized that the emacs referenced in the expanded command is pointing to /usr/bin/emacs which is one big file, I don't see the normal lisp / site-lisp / etc directories. I also know that my prefered emacs is carbon emacs located in /Application/Emacs.app which just opens when clicking on it, or alternatively, I can open it in with the terminal:

open /Application/MyApp.app

Finally the title question: How can I make Makefile using the Emacs.app on the applications directory? I hope someone here knows the answer, or can point me to alternatives.

regards, Jeroen.

3

There are 3 answers

0
Ben Hyde On BEST ANSWER
 bash-3.2$ EMACSLOADPATH=/usr/share/emacs/22.1/site-lisp:/usr/share/emacs/22.1/lisp emacs - batch -eval '(print "hi")'

 "hi"  
 bash-3.2$ emacs -batch -eval '(print "hi")'
 Cannot open load file: subst-ksc
 bash-3.2$
0
Pith On

I had the same error Cannot open load file: subst-ksc on OS X Maverick running

cask exec emacs --no-site-file --no-site-lisp --batch \
     \
    -f batch-byte-compile projectile.el

I solved it with the method given here.

Replace the /usr/bin/emacs file by the following script:

#!/bin/sh
/Applications/Emacs.app/Contents/MacOS/Emacs "$@"

With that manner the emacs command will run your actual Emacs.

0
Devon Sean McCullough On
bash-3.2$ emacs -batch -eval '(print emacs-version)'
Cannot open load file: subst-ksc

bash-3.2$ unset EMACSLOADPATH

bash-3.2$ emacs -batch -eval '(print emacs-version)'

"22.1.1"