peck@SUN.COM (Jeff Peck) (02/06/90)
> I am a non-emacs-user who is trying to install emacs on our Sun system >for several users. > So, my question. How do people out there share the etc, lisp and such >files between the two copies? Do I really need seperate sets of these >directories for the two executables? No, you don't need two sets. In fact, you don't even need to versions of emacs. The X compiled version of emacs should work just fine on regular terminals. At most, you would invoke with the "-nw" arg to disable any attempt to use X windows. You don't explain what you mean by "straight" terminals: dumb tty, or Sunview? Locally, i make one emacs with HAVE_X_WINDOWS, HAVE_SUN_WINDOWS, HAVE_NEWS *all* defined. The window system environment variables tell emacs what type of window to make or use (except X/NeWS users who want to specify a NeWS window, they make their window and start emacs with -nw. We do have many architectures, and manage to share everything but the executables in the "etc" directory: We have /usr/local/share/gnuemacs/{etc,src,lisp,info,...} which has all the usual source and .elc files. Then for each arch we have: /usr/local/`arch`/gnuemacs/{src,lisp,info,...} which are symlinks to "../../share/gnuemacs/{src,lisp,info,...}" and /usr/local/`arch`/gnuemacs/etc which contains symlinks to the *source* files and *DOC* files for the etc programs [ie: "../../share/gnuemacs/etc/etags.c" ] and contains the actual executables for that architecture. The "emacs" executable is also in this directory so users just need to include "/usr/local/gnuemacs/etc" in their path to have access to all the gnu/etc executables. #! /bin/csh # make a /etc/local/`arch`/gnuemacs/etc directory # convert non-executables to links to shared directory. # rm -rf * foreach file (`ls -F /export/local/share/gnuemacs/etc | grep -v "\*" `) (cd /export/local/sun3/gnuemacs/etc; \rm -f $file; ln -s ../../share/gnuemacs/etc/$file .) (cd /export/local/sun4/gnuemacs/etc; \rm -f $file; ln -s ../../share/gnuemacs/etc/$file .) (cd /export/local/sun386/gnuemacs/etc; \rm -f $file; ln -s ../../share/gnuemacs/etc/$file .) end I have also hacked the src/config.h file to read `arch` to include the correct m-<arch> file. so a common config.h is used for all arch's... /* Include here a m- file that describes the machine and system you use. See the file ../etc/MACHINES for a list of machines and the names of the m- files to use for them. See m-template.h for info on what m- files should define. */ #define HAVE_SUN_WINDOWS #define HAVE_NEWS #ifdef sun #if defined sun386 #include "m-sun386.h" #elif defined sparc #include "m-sparc.h" #elif defined mc68000 #include "m-sun3.h" #endif #endif