3 #Shell script for building and installing Emacs.
5 # ==================== Where To Install Things ====================
7 # The default location for installation. Everything is placed in
8 # subdirectories of this directory. This directory must exist when
9 # you start installation. The default values for many of the
10 # variables below are expressed in terms of this one, so you may not
11 # need to change them.
14 # Where to install Emacs and other binaries that people will want to
15 # run directly (like etags).
18 # A directory under which we will install many of Emacs's files. The
19 # default values for many of the variables below are expressed in
20 # terms of this one, so you may not need to change them.
21 emacsdir
=${prefix}/emacs-19.0
23 # Where to install and expect the architecture-independent data files
24 # (like the tutorial and the Zippy database).
25 datadir
=${emacsdir}/etc
27 # Where to install the elisp files distributed with Emacs. Strictly
28 # speaking, all the elisp files should go under datadir (above), since
29 # both elisp source and compiled elisp are completely portable, but
30 # it's traditional to give the lisp files their own subdirectory.
31 lispdir
=${emacsdir}/lisp
33 # Directories Emacs should search for elisp files specific to this
34 # site (i.e. customizations), before consulting ${lispdir}. This
35 # should be a colon-separated list of directories.
36 locallisppath
=${emacsdir}/local-lisp
38 # Where Emacs will search to find its elisp files. Before changing
39 # this, check to see if your purpose wouldn't better be served by
40 # changing locallisppath. This should be a colon-separated list of
42 lisppath
=${locallisppath}:${lispdir}
44 # Where Emacs will search for its elisp files before dumping. This is
45 # only used during the process of compiling Emacs, to help Emacs find
46 # its lisp files before they've been installed in their final
47 # location. It's usually identical to lisppath, except that the entry
48 # for the directory containing the installed lisp files has been
49 # replaced with ../lisp. This should be a colon-separated list of
53 # Where to install and expect the files that Emacs modifies as it
54 # runs. These files are all architecture-independent. Right now,
55 # the only such data is the locking directory.
58 # Where to create and expect the locking directory, where the Emacs
59 # locking code keeps track of which files are currently being edited.
60 lockdir
=${statedir}/lock
62 # Where to install and expect executable files to be run by Emacs
63 # rather than directly by users, and other architecture-dependent
65 libdir
=${emacsdir}/arch-lib
67 # Where to install Emacs's man pages.
70 # Where to install and expect the info files describing Emacs. In the
71 # past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
72 # since there are now many packages documented with the texinfo
73 # system, it is inappropriate to imply that it is part of Emacs.
74 infodir
=${prefix}/info
76 removenullpaths
="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'"
78 lisppath
=`echo ${lisppath} | ${removenullpaths}` ; \
79 dumplisppath
=`echo ${dumplisppath} | ${removenullpaths}` ; \
80 /bin
/sed < src
/paths.h.
in > src
/paths.h \
81 -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$
${lisppath}'";' \
82 -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$
${dumplisppath}'";' \
83 -e 's;\(#.*PATH_EXEC\).*$$;\1 "${libdir}";' \
84 -e 's;\(#.*PATH_DATA\).*$$;\1 "${datadir}";' \
85 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";'
87 (cd lib-src
; make) ||
exit 1
88 (cd src
; make) ||
exit 1
90 # Subdirectories to install, and where they'll go.
91 copydir
=arch-lib etc info lisp
92 copydests
=${libdir} ${datadir} ${infodir} ${lispdir}
94 # If any of the directories are below ${emacsdir} or ${statedir}, create them.
95 for dir
in ${copydests}; do
98 if [ ! -d ${emacsdir} ]; then
100 chmod 777 ${emacsdir}
104 if [ ! -d ${statedir} ]; then
106 chmod 777 ${statedir}
113 for dir
in ${copydir} ; do
117 echo mv ${dir} to
${dest} failed
-- using
tar to copy.
118 if [ `/bin/pwd`/${dir} != `(cd ${dest}; /bin/pwd)` ] ; then
119 (cd ${dir}; tar cf
- .
) |
(cd ${dest}; umask 0; tar xf
- )
121 echo "tar-copying ${dir} to ${dest} failed too. I give up."
124 for subdir
in `find ${dest} -type d ! -name RCS -print` ; do
133 cp ${libdir}/[ce
]tags
${bindir}
134 mv src
/emacs
${BINDIR}/emacs
136 chmod 777 ${bindir}/[ce
]tags
${bindir}/emacs