aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
authorJim Blandy1992-12-12 15:24:50 +0000
committerJim Blandy1992-12-12 15:24:50 +0000
commitc71beb7551a3326bb76034eafe2102f0f8a9177d (patch)
tree5c5fa3f58b1d323c13baa7509d307df68a443125 /lib-src
parent315e49edd07ce7a4c5d685acc88e83bbdc4620fe (diff)
downloademacs-c71beb7551a3326bb76034eafe2102f0f8a9177d.tar.gz
emacs-c71beb7551a3326bb76034eafe2102f0f8a9177d.zip
* Makefile.in (exec_prefix): New variable.
(bindir, libdir): Use it instead of `prefix'. * Makefile.in (CFLAGS): #define HAVE_CONFIG_H, too. * Makefile.in (libdir): Default to ${prefix}/lib. (archlibdir): Adjusted to match. * Makefile.in (distclean): Don't delete backup or autosave files. (extraclean): Like realclean, but does delete backup and autosave files. * Makefile.in (realclean): Ignore errors from rm. * Makefile.in (distclean): Don't bother to delete ../arch-lib; that doesn't exist anymore. * Makefile.in (prefix, bindir, libdir, srcdir): New variables, as described in the top-level Makefile. (UTILITIES): Add make-path to the list of utility programs. (../arch-lib): Replaced by the ${archlibdir} target, which places the executables in their permanent home. (install, install.sysv, install.xenix): Consolidated into one target which should work under all circumstances, modulo a few ignored error messages.
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/Makefile.in165
1 files changed, 100 insertions, 65 deletions
diff --git a/lib-src/Makefile.in b/lib-src/Makefile.in
index 40afa89b54c..15ba317c928 100644
--- a/lib-src/Makefile.in
+++ b/lib-src/Makefile.in
@@ -12,16 +12,68 @@
12# inherited from the environment. 12# inherited from the environment.
13SHELL = /bin/sh 13SHELL = /bin/sh
14 14
15# ==================== Things `configure' might edit ====================
16
17CC=cc
18CONFIG_CFLAGS=-g
19LOADLIBES=
20version=version-not-set
21configname=configuration-name-not-set
22
23# ==================== Where To Install Things ====================
24
25# The default location for installation. Everything is placed in
26# subdirectories of this directory. The default values for many of
27# the variables below are expressed in terms of this one, so you may
28# not need to change them.
29prefix=/usr/local
30
31# Like `prefix', but used for architecture-specific files.
32exec_prefix=${prefix}
33
34# Where to install Emacs and other binaries that people will want to
35# run directly (like etags).
36bindir=${exec_prefix}/bin
37
38# Where to install and expect executable files to be run by Emacs
39# rather than directly by users, and other architecture-dependent
40# data. ${archlibdir} is usually below this.
41libdir=${exec_prefix}/lib
42
43# Where to find the source code - setting this to anything but
44# . doesn't work yet. The source code for Emacs's C kernel is
45# expected to be in ${srcdir}/src, and the source code for Emacs's
46# utility programs is expected to be in ${srcdir}/lib-src. This is
47# set by the configure script's `--srcdir' option.
48srcdir=.
49
50# ==================== Emacs-specific directories ====================
51
52# These variables hold the values Emacs will actually use. They are
53# based on the values of the standard Make variables above.
54
55# Where to put executables to be run by Emacs rather than the user.
56# This path usually includes the Emacs version and configuration name,
57# so that multiple configurations for multiple versions of Emacs may
58# be installed at once.
59archlibdir=${libdir}/emacs/${version}/${configname}
60
61# ==================== Utility Programs for the Build ====================
62
15# Allow the user to specify the install program. 63# Allow the user to specify the install program.
16INSTALL = install 64INSTALL = install
17INSTALLFLAGS = 65INSTALLFLAGS = -c
66INSTALL_PROGRAM = ${INSTALL}
67INSTALL_DATA = ${INSTALL}
68
69# ============================= Targets ==============================
18 70
19# Things that a user might actually run, which should be installed in bindir. 71# Things that a user might actually run, which should be installed in bindir.
20INSTALLABLES = etags ctags emacsclient b2m 72INSTALLABLES = etags ctags emacsclient b2m
21 73
22# Things that Emacs runs internally, or during the build process, 74# Things that Emacs runs internally, or during the build process,
23# which should not be installed in bindir. 75# which should not be installed in bindir.
24UTILITIES= test-distrib wakeup make-docfile digest-doc sorted-doc \ 76UTILITIES= test-distrib make-path wakeup make-docfile digest-doc sorted-doc \
25 movemail cvtmail fakemail yow env emacsserver hexl timer 77 movemail cvtmail fakemail yow env emacsserver hexl timer
26 78
27# Like UTILITIES, but they're not system-dependent, and should not be 79# Like UTILITIES, but they're not system-dependent, and should not be
@@ -30,80 +82,63 @@ SCRIPTS= rcs2log vcdiff
30 82
31EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS} 83EXECUTABLES= ${UTILITIES} ${INSTALLABLES} ${SCRIPTS}
32 84
33# These things are edited by ../configure; don't change anything before 85### We need to #define emacs to get the right versions of some files.
34# or including the '='; everything after that gets blown away. 86### Some other files - those shared with other GNU utilities - need
35CC=gcc 87### HAVE_CONFIG_H #defined before they know they can take advantage of
36CONFIG_CFLAGS= -g -O 88### the information in ../src/config.h.
37LOADLIBES= 89CFLAGS=${CONFIG_CFLAGS} -Demacs -DHAVE_CONFIG_H -I../src
38 90
39CFLAGS=${CONFIG_CFLAGS} -Demacs -I../src 91all: ${EXECUTABLES}
40 92
41all: ../arch-lib 93### Install the internal utilities. Until they are installed, we can
42 94### just run them directly from lib-src.
43# We use rm -f so that rm won't try to ask questions during the build. 95${archlibdir}: all
44../arch-lib: ${EXECUTABLES} 96 @echo
45 for file in ${EXECUTABLES} ; do \ 97 @echo "Installing utilities run internally by Emacs."
46 if [ -f $${file} ]; then \ 98 ./make-path ${archlibdir}
47 if [ -f ../arch-lib/$${file} ]; then \ 99 if [ `(cd ${archlibdir};/bin/pwd)` != `/bin/pwd` ]; then \
48 rm -f ../arch-lib/$${file} ; \ 100 for file in ${EXECUTABLES} ; do \
49 fi ; \ 101 cp $${file} ${archlibdir} ; \
50 ln $${file} ../arch-lib ; \ 102 chmod 755 ${archlibdir}/$${file} ; \
51 fi ; \ 103 done ; \
104 fi
105 @echo
106 @echo "Changing the owner and group of Emacs's utility programs to \`bin'."
107 @echo "(You may ignore errors here if you don't care about this.)"
108 -for file in ${EXECUTABLES} ; do \
109 chgrp bin ${archlibdir}/$${file} ; \
110 chown bin ${archlibdir}/$${file} ; \
52 done 111 done
53 112
54# We don't need to install `wakeup' explicitly, because it will be copied when 113# We don't need to install `wakeup' explicitly, because it will be copied when
55# this whole directory is copied. 114# this whole directory is copied.
56install: all 115install: ${archlibdir}
57 ${INSTALL} ${INSTALLFLAGS} -c emacsclient ${BINDIR}/emacsclient 116 @echo
58 ${INSTALL} ${INSTALLFLAGS} -c etags ${BINDIR}/etags 117 @echo "Installing utilities for users to run."
59 ${INSTALL} ${INSTALLFLAGS} -c ctags ${BINDIR}/ctags 118 for file in emacsclient etags ctags b2m ; do \
60 ${INSTALL} ${INSTALLFLAGS} -c b2m ${BINDIR}/b2m 119 cp $${file} ${bindir}/$${file}.new ; \
61 ${INSTALL} ${INSTALLFLAGS} -c -m 444 emacs.1 ${MANDIR}/emacs.${MANEXT} 120 chmod 755 ${bindir}/$${file}.new ; \
62 121 done
63install.sysv: all 122 @echo
64 -cp emacsclient ${BINDIR}/emacsclient.new 123 @echo "Changing the owner and group of utility programs to \`bin'."
65 -chmod 755 ${BINDIR}/emacsclient.new 124 @echo "(You may ignore errors here if you don't care about this.)"
66 -chgrp bin ${BINDIR}/emacsclient.new 125 -for file in emacsclient etags ctags b2m ; do \
67 -chown bin ${BINDIR}/emacsclient.new 126 chgrp bin ${bindir}/$${file}.new ; \
68 -mv ${BINDIR}/emacsclient.new ${BINDIR}/emacsclient 127 chown bin ${bindir}/$${file}.new ; \
69 -cp etags ${BINDIR}/etags.new 128 mv ${bindir}/$${file}.new ${bindir}/$${file} ; \
70 -chmod 755 ${BINDIR}/etags.new 129 done
71 -chgrp bin ${BINDIR}/etags.new
72 -chown bin ${BINDIR}/etags.new
73 -mv ${BINDIR}/etags.new ${BINDIR}/etags
74 -cp ctags ${BINDIR}/ctags.new
75 -chmod 755 ${BINDIR}/ctags.new
76 -chgrp bin ${BINDIR}/ctags.new
77 -chown bin ${BINDIR}/ctags.new
78 -mv ${BINDIR}/ctags.new ${BINDIR}/ctags
79 -cp b2m ${BINDIR}/b2m.new
80 -chmod 755 ${BINDIR}/b2m.new
81 -chgrp bin ${BINDIR}/b2m.new
82 -chown bin ${BINDIR}/b2m.new
83 -mv ${BINDIR}/b2m.new ${BINDIR}/b2m
84 -cp emacs.1 ${MANDIR}/emacs.${MANEXT}.new
85 -chmod 444 ${MANDIR}/emacs.${MANEXT}.new
86 -mv ${MANDIR}/emacs.${MANEXT}.new ${MANDIR}/emacs.${MANEXT}
87
88install.xenix:
89 cp etags ctags emacsclient ${BINDIR}
90 chmod 755 ${BINDIR}/etags ${BINDIR}/ctags
91 chmod 755 ${BINDIR}/emacsclient
92 cp b2m ${BINDIR}
93 chmod 755 ${BINDIR}/b2m
94 cp emacs.1 ${MANDIR}/emacs.${MANEXT}
95 chmod 444 ${MANDIR}/emacs.${MANEXT}
96
97 130
98clean mostlyclean: 131clean mostlyclean:
99 -rm -f ${INSTALLABLES} ${UTILITIES} core *.o 132 -rm -f ${INSTALLABLES} ${UTILITIES} core *.o
100 133
101distclean: 134distclean:
102 -rm -f ${INSTALLABLES} ${UTILITIES} *~ \#* ../etc/DOC* core *.o 135 -rm -f ${INSTALLABLES} ${UTILITIES} ../etc/DOC* core *.o
103 cd ../arch-lib; rm -f ${EXECUTABLES}
104 136
105realclean: distclean 137realclean: distclean
106 rm TAGS aixcc.c 138 -rm TAGS aixcc.c
139
140extraclean: realclean
141 -rm -f *~ \#*
107 142
108# Test the contents of the directory. 143# Test the contents of the directory.
109check: 144check: