Mercurial > emacs
annotate build-ins.in @ 25900:f14be0689a02
*** empty log message ***
author | Dave Love <fx@gnu.org> |
---|---|
date | Thu, 07 Oct 1999 14:27:51 +0000 |
parents | 1541c518f769 |
children |
rev | line source |
---|---|
522 | 1 #!/bin/sh -x |
491 | 2 # |
3 #Shell script for building and installing Emacs. | |
4 | |
617 | 5 # ==================== Where To Install Things ==================== |
6 | |
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. | |
12 prefix=/usr/local | |
13 | |
14 # Where to install Emacs and other binaries that people will want to | |
15 # run directly (like etags). | |
16 bindir=${prefix}/bin | |
17 | |
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. | |
621 | 21 emacsdir=${prefix}/emacs-19.0 |
617 | 22 |
23 # Where to install and expect the architecture-independent data files | |
621 | 24 # (like the tutorial and the Zippy database). |
617 | 25 datadir=${emacsdir}/etc |
26 | |
621 | 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. | |
617 | 31 lispdir=${emacsdir}/lisp |
32 | |
621 | 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 | |
37 | |
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 | |
41 # directories. | |
42 lisppath=${locallisppath}:${lispdir} | |
43 | |
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 | |
50 # directories. | |
51 dumplisppath=../lisp | |
617 | 52 |
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. | |
56 statedir=${emacsdir} | |
57 | |
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 | |
61 | |
62 # Where to install and expect executable files to be run by Emacs | |
63 # rather than directly by users, and other architecture-dependent | |
64 # data. | |
65 libdir=${emacsdir}/arch-lib | |
66 | |
67 # Where to install Emacs's man pages. | |
68 mandir=/usr/man/man1 | |
69 | |
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 | |
75 | |
621 | 76 removenullpaths="sed -e 's/^://' -e 's/:"'$'"//' -e 's/::/:/'" |
491 | 77 |
621 | 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}";' \ | |
625 | 85 -e 's;\(#.*PATH_LOCK\).*$$;\1 "${lockdir}/";' |
491 | 86 |
87 (cd lib-src; make) || exit 1 | |
88 (cd src; make) || exit 1 | |
89 | |
617 | 90 # Subdirectories to install, and where they'll go. |
91 copydir=arch-lib etc info lisp | |
92 copydests=${libdir} ${datadir} ${infodir} ${lispdir} | |
93 | |
94 # If any of the directories are below ${emacsdir} or ${statedir}, create them. | |
95 for dir in ${copydests}; do | |
96 case "${dir}" in | |
97 ${emacsdir}/* ) | |
98 if [ ! -d ${emacsdir} ]; then | |
7544
1541c518f769
(copydests): Get rid of spurious `-'s.
Richard M. Stallman <rms@gnu.org>
parents:
4794
diff
changeset
|
99 mkdir ${emacsdir} |
1541c518f769
(copydests): Get rid of spurious `-'s.
Richard M. Stallman <rms@gnu.org>
parents:
4794
diff
changeset
|
100 chmod 777 ${emacsdir} |
617 | 101 fi |
102 ;; | |
103 ${statedir}/* ) | |
104 if [ ! -d ${statedir} ]; then | |
7544
1541c518f769
(copydests): Get rid of spurious `-'s.
Richard M. Stallman <rms@gnu.org>
parents:
4794
diff
changeset
|
105 mkdir ${statedir} |
1541c518f769
(copydests): Get rid of spurious `-'s.
Richard M. Stallman <rms@gnu.org>
parents:
4794
diff
changeset
|
106 chmod 777 ${statedir} |
617 | 107 fi |
108 ;; | |
109 esac | |
110 done | |
111 | |
112 set ${copydests} | |
113 for dir in ${copydir} ; do | |
114 dest=$1 ; shift | |
115 mv ${dir} ${dest} | |
116 if [ $? != 0 ]; then | |
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 - ) | |
120 if [ $? != 0 ]; then | |
121 echo "tar-copying ${dir} to ${dest} failed too. I give up." | |
122 exit 1 | |
123 fi | |
124 for subdir in `find ${dest} -type d ! -name RCS -print` ; do | |
125 rm -rf ${subdir}/RCS | |
126 rm -f ${subdir}/\#* | |
127 rm -f ${subdir}/*~ | |
128 done | |
522 | 129 fi |
130 fi | |
617 | 131 done |
491 | 132 |
617 | 133 cp ${libdir}/[ce]tags ${bindir} |
4794
b0eeade85c1f
Change src/xemacs to src/emacs. We no longer create src/xemacs, so
Brian Fox <bfox@gnu.org>
parents:
625
diff
changeset
|
134 mv src/emacs ${BINDIR}/emacs |
617 | 135 rm src/temacs |
136 chmod 777 ${bindir}/[ce]tags ${bindir}/emacs |