Installing Snack on Lion (Moutain?) OS X 10.8

· development

For some demo programs, since my attempt to create standalone program half failed, I needed to install snack on a MacOSX 10.8 machine. Here is my experience.

  • Install XCode. Well, should be easy, but since in Switzerland, they require you to provide a valid payment means, I had to register as a French, in order to be able to choose “None” instead. Funny (or scary) difference, indeed… Anyway, it’s a bit sad to require payment methods for free stuff… bad “prism” smell? Well, I tried through the App Store, but it would seem it’s possible to download through the developer’s website.
  • Install Homebrew for… well, I m using Fink for my personal use, and wanted to try that one out. Although not sure what it’d bring to the demo program, it’s always good to have a package manager. Unfortunately, Homebrew does not install XEmacs, or snack… while fink does!…
  • In conclusion, I had to install snack from source. It should be fairly straight-forward, except that, in my case, the configure step did not find the compiler (clang). Actually the problem was exacty the same as this one. The provided solution, to link the placeĀ  where it is searched for with the correct one, does allow to complete the configure tep.
  • At last, make and make install can be run. However, during compilation, the program did not find X11/Xlib.h. As a matter of fact, I had to hack the Makefile file and add the include paths from Tcl/Tk manually, where the compilation can find the headers – I believe the install was make through a network, and since I was disconnected from that network, I could not access to these ressources. This however needs to be confirmed…
  • The make command ended at first with some errors related to sed, but in the end, it sort of worked.
  • make install allows to install the library and source files in the right place, but once again, the Makefile did not take in the prefix options, and had to modify it by hand. Adding the target directory and defining export TCLLIBPATH=${prefix}/tcllib, for instance, allows TCL to find its modules (among which snack.tcl!). One should probably likewise define TKLIBPATH.

Now the demo program seems to work.