comparison src/Makefile.in.in @ 163:0132846995bd r20-3b8

Import from CVS: tag r20-3b8
author cvs
date Mon, 13 Aug 2007 09:43:35 +0200
parents 3bb7ccffb0c0
children 5a88923fcbfe
comparison
equal deleted inserted replaced
162:4de2936b4e77 163:0132846995bd
1 /* Makefile for src subdirectory in XEmacs. 1 ## Makefile for src subdirectory in XEmacs.
2 Copyright (C) 1985, 1987, 1988, 1993, 1994 Free Software Foundation, Inc. 2 ## Copyright (C) 1985, 1987, 1988, 1993, 1994 Free Software Foundation, Inc.
3 Copyright (C) 1994, 1995 Board of Trustees, University of Illinois 3 ## Copyright (C) 1994, 1995 Board of Trustees, University of Illinois
4 4 ## Copyright (C) 1996, 1997 Sun Microsystems, Inc.
5 This file is part of XEmacs. 5
6 6 ## This file is part of XEmacs.
7 XEmacs is free software; you can redistribute it and/or modify it 7
8 under the terms of the GNU General Public License as published by the 8 ## XEmacs is free software; you can redistribute it and/or modify it
9 Free Software Foundation; either version 2, or (at your option) any 9 ## under the terms of the GNU General Public License as published by the
10 later version. 10 ## Free Software Foundation; either version 2, or (at your option) any
11 11 ## later version.
12 XEmacs is distributed in the hope that it will be useful, but WITHOUT 12
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 ## XEmacs is distributed in the hope that it will be useful, but WITHOUT
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 for more details. 15 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 16 ## for more details.
17 You should have received a copy of the GNU General Public License 17
18 along with XEmacs; see the file COPYING. If not, write to 18 ## You should have received a copy of the GNU General Public License
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 ## along with XEmacs; see the file COPYING. If not, write to
20 Boston, MA 02111-1307, USA. */ 20 ## the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 21 ## Boston, MA 02111-1307, USA.
22 /* Synched up with: Not synched with FSF. */ 22
23 ## Synched up with: Not synched with FSF.
23 24
24 @SET_MAKE@ 25 @SET_MAKE@
25 26
26 /* Some people use these in paths they define. We do not want their paths 27 all: xemacs
27 getting changed on them. */ 28 .PHONY : all release dump-elc dump-elcs all-elc all-elcs lint
28 #undef sparc 29
29 #undef sun 30 ## For performance and consistency, no built-in rules.
30 #undef unix
31 #undef sgi
32 #undef NeXT
33 #undef i386
34
35 /* For performance and consistency, no built-in rules */
36 .SUFFIXES: 31 .SUFFIXES:
37 .SUFFIXES: .c .o .i .h 32 .SUFFIXES: .c .o .i .h
38 dot = . 33
39 /* On Xenix and the IBM RS6000, double-dot gets screwed up. */ 34 lispdir = ${srcdir}/../lisp/
40 lispdir = ${srcdir}/$(dot)$(dot)/lisp/ 35 libsrc = ../lib-src/
41 libsrc = $(dot)$(dot)/lib-src/ 36 etcdir = ../etc/
42 etcdir = $(dot)$(dot)/etc/ 37
43 38 ## Here are the things that we expect ../configure to edit.
44 /* Here are the things that we expect ../configure to edit. */
45 srcdir=@srcdir@ 39 srcdir=@srcdir@
46 CC=@CC@ 40 CC=@CC@
47 CPP=@CPP@ 41 CPP=@CPP@
48 CFLAGS=@CFLAGS@ 42 CFLAGS=@CFLAGS@
49 CPPFLAGS=@CPPFLAGS@ 43 CPPFLAGS=@CPPFLAGS@
60 ld_libs_all=@ld_libs_all@ 54 ld_libs_all=@ld_libs_all@
61 55
62 extra_objs=@extra_objs@ 56 extra_objs=@extra_objs@
63 LN_S=@LN_S@ 57 LN_S=@LN_S@
64 58
65 /* just to be sure the sh is used */ 59 ld_switch_call_shared=@ld_switch_call_shared@
60 ld_switch_shared=@ld_switch_shared@
61 start_files=@start_files@
62 start_flags=@start_flags@
63 LD=@ld@
64 lib_gcc=@lib_gcc@
65
66 ## just to be sure the sh is used
66 SHELL=/bin/sh 67 SHELL=/bin/sh
67 68
68 #define NO_SHORTNAMES 69 #define NO_SHORTNAMES
69 #define NOT_C_CODE 70 #define NOT_C_CODE
70 #include "config.h" 71 #include "config.h"
71 72
72 /* With the traditional VPATH setting, it is not possible to 73 ## With the traditional VPATH setting, it is not possible to
73 simultaneously compile in-place and in another directory. The 74 ## simultaneously compile in-place and in another directory. The
74 mistaken definition is that *all* dependencies are searched for in 75 ## mistaken definition is that *all* dependencies are searched for in
75 the VPATH directory, rather than just the dependencies that are not 76 ## the VPATH directory, rather than just the dependencies that are not
76 themselves targets. Thus, if there is an up-to-date .o file in the 77 ## themselves targets. Thus, if there is an up-to-date .o file in the
77 in-place location, it will not get recompiled in the not-in-place 78 ## in-place location, it will not get recompiled in the not-in-place
78 location. 79 ## location.
79 80
80 The GNU Make "vpath" directive continues this tradition, but at 81 ## The GNU Make "vpath" directive continues this tradition, but at
81 least lets you restrict the classes of files that it applies to. 82 ## least lets you restrict the classes of files that it applies to.
82 This allows us to kludge around the problem. */ 83 ## This allows us to kludge around the problem.
84
83 #ifdef USE_GNU_MAKE 85 #ifdef USE_GNU_MAKE
84 vpath %.c @srcdir@ 86 vpath %.c @srcdir@
85 vpath %.h @srcdir@ 87 vpath %.h @srcdir@
86 /* now list files that should NOT be searched in the srcdir. 88 ## now list files that should NOT be searched in the srcdir.
87 This includes any .c or .h built from something else 89 ## This includes any .c or .h built from something else
88 (e.g. a .in file). */ 90 ## (e.g. a .in file).
89 vpath config.h 91 vpath config.h
90 vpath paths.h 92 vpath paths.h
91 vpath Emacs.ad.h 93 vpath Emacs.ad.h
92 vpath puresize_adjust.h 94 vpath puresize_adjust.h
93 #else 95 #else
94 VPATH=@srcdir@ 96 VPATH=@srcdir@
95 #endif 97 #endif
96 98
97 /* On some machines #define register is done in config; 99 RM = rm -f
98 do not let it interfere with this file. */
99 #undef register
100
101 /* Unless inhibited or changed, use -lg to link for debugging. */
102 #ifndef LIBS_DEBUG
103 #define LIBS_DEBUG "-lg"
104 #endif
105
106 #ifndef LD_SWITCH_CALL_SHARED
107 #define LD_SWITCH_CALL_SHARED
108 #endif /* define a call_shared switch */
109
110 #ifndef LD_SWITCH_SHARED
111 #define LD_SWITCH_SHARED "-c"
112 #endif /* define a shared switch */
113
114 #ifndef ORDINARY_LINK
115
116 #ifndef CRT0_COMPILE
117 #define CRT0_COMPILE $(CC) "-c" $(cflags) C_SWITCH_ASM
118 #endif
119
120 #ifndef START_FILES
121 #ifdef NO_REMAP
122 #ifdef COFF_ENCAPSULATE
123 #define START_FILES "pre-crt0.o" "/usr/local/lib/gcc-crt0.o"
124 #else /* ! defined (COFF_ENCAPSULATE) */
125 #define START_FILES "pre-crt0.o" "/lib/crt0.o"
126 #endif /* ! defined (COFF_ENCAPSULATE) */
127 #else /* ! defined (NO_REMAP) */
128 #define START_FILES "ecrt0.o"
129 #endif /* ! defined (NO_REMAP) */
130 #endif /* START_FILES */
131 STARTFILES = START_FILES
132
133 #else /* ORDINARY_LINK */
134
135 /* config.h might want to force START_FILES anyway */
136 #ifdef START_FILES
137 STARTFILES = START_FILES
138 #else
139 STARTFILES =
140 #endif /* START_FILES */
141
142 #endif /* not ORDINARY_LINK */
143
144 /* cc switches needed to make the "asm" keyword work.
145 Nothing special needed on most machines. */
146 #ifndef C_SWITCH_ASM
147 #define C_SWITCH_ASM
148 #endif
149
150 PURIFY_PROG=purify 100 PURIFY_PROG=purify
151 PURIFY_FLAGS=-chain-length=16 -ignore-signals=SIGPOLL -log-file=puremacs.log \ 101 PURIFY_FLAGS=-chain-length=16 -ignore-signals=SIGPOLL -log-file=puremacs.log \
152 -messages=batch -show-directory=yes -windows=yes \ 102 -messages=batch -show-directory=yes -windows=yes \
153 -cache-dir=. -always-use-cache-dir=yes 103 -cache-dir=. -always-use-cache-dir=yes
154 PURECOV_PROG=purecov 104 PURECOV_PROG=purecov
165 115
166 #ifdef HAVE_NATIVE_SOUND 116 #ifdef HAVE_NATIVE_SOUND
167 sound_cflags=@sound_cflags@ 117 sound_cflags=@sound_cflags@
168 #endif 118 #endif
169 119
170 LWLIB_SRCDIR = ${srcdir}/$(dot)$(dot)/lwlib 120 LWLIB_SRCDIR = ${srcdir}/../lwlib
171 121
172 #ifdef HAVE_X_WINDOWS 122 #ifdef HAVE_X_WINDOWS
173 LWLIB_BUILDDIR = $(dot)$(dot)/lwlib 123 lwlib_libs = ../lwlib/liblw.a
174 124 lwlib_deps = $(lwlib_libs)
175 LWLIB_LDFLAGS = -L$(LWLIB_BUILDDIR) 125 $(lwlib_libs) :
176 LWLIB_LIBS = -llw 126 cd ../lwlib && ${MAKE} ${MFLAGS}
177 /* LWLIB_CPPFLAGS = -I$(LWLIB_SRCDIR) */ 127 ## LWLIB_LDFLAGS = -L../lwlib
178 LWLIB_DEPS = $(LWLIB_BUILDDIR)/liblw.a
179 128
180 x_objs=balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o\ 129 x_objs=balloon_help.o balloon-x.o console-x.o device-x.o event-Xt.o frame-x.o\
181 glyphs-x.o objects-x.o redisplay-x.o xgccache.o xselect.o 130 glyphs-x.o objects-x.o redisplay-x.o xgccache.o xselect.o
182 131
183 #ifdef AIX4 132 #ifdef AIX4
185 #endif /* AIX4 */ 134 #endif /* AIX4 */
186 135
187 X11_libs= $(LIBX11_LIBS) $(libx11_intl) $(LIBI18N) 136 X11_libs= $(LIBX11_LIBS) $(libx11_intl) $(LIBI18N)
188 #endif /* HAVE_X_WINDOWS */ 137 #endif /* HAVE_X_WINDOWS */
189 138
190 /* -Demacs is needed to make some files produce the correct version 139 ## -Demacs is needed to make some files produce the correct version
191 for use in Emacs. */ 140 ## for use in Emacs.
192 141
193 cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all) 142 cppflags = $(CPPFLAGS) -Demacs -I. $(c_switch_all)
194 143 cflags = $(CFLAGS) $(cppflags)
195 cflags= $(CFLAGS) $(cppflags) 144 ldflags = -L. $(ld_switch_all)
196
197 ldflags = -L. $(LWLIB_LDFLAGS) $(ld_switch_all)
198 145
199 .c.o: 146 .c.o:
200 $(CC) -c $(cflags) $< 147 $(CC) -c $(cflags) $<
201 148
202 /* Create preprocessor output (debugging purposes only) */ 149 ## Create preprocessor output (debugging purposes only)
203 .c.i: 150 .c.i:
204 $(CC) -P $(cppflags) $< 151 $(CC) -P $(cppflags) $<
205
206 #ifndef ORDINARY_LINK
207 /* Fix linking if compiled with GCC. */
208 #ifdef __GNUC__
209
210 /* Versions of GCC >= 2.0 put their library, libgcc.a, in obscure
211 places that are difficult to figure out at make time. Fortunately,
212 these same versions allow you to pass arbitrary flags on to the
213 linker, so there is no reason not to use it as a linker.
214
215 Well, it is not quite perfect. The "-nostdlib" option keeps GCC
216 from searching for libraries in its internal directories, so we
217 have to ask GCC explicitly where to find libgcc.a. */
218
219 #ifndef LINKER
220 #define LINKER $(CC) "-nostdlib"
221 /* GCC passes any argument prefixed with -Xlinker directly to the
222 linker. See prefix-args.c for an explanation of why we do not do
223 this with the shell "for" construct.
224 Note that some people do not have "." in their paths, so we must
225 use ./prefix-args. */
226 #define YMF_PASS_LDFLAGS(flags) `./prefix-args -Xlinker flags`
227 #endif /* LINKER */
228
229 #ifndef LIB_GCC
230 /* Ask GCC where to find libgcc.a. */
231 #define LIB_GCC `$(CC) -print-libgcc-file-name`
232 #endif /* LIB_GCC */
233
234 GNULIB_VAR = LIB_GCC
235
236 #else /* ! defined (__GNUC__) */
237 GNULIB_VAR =
238
239 #endif /* ! defined (__GNUC__) */
240 #else
241 GNULIB_VAR =
242 #endif /* not ORDINARY_LINK */
243
244 /* A macro which other sections of the makefile can redefine to munge the
245 flags before they are passed to LD. This is helpful if you have
246 redefined LD to something odd, like "gcc". */
247 #ifndef YMF_PASS_LDFLAGS
248 #define YMF_PASS_LDFLAGS(flags) flags
249 #endif
250
251 /* Specify address for ld to start loading at, if requested by configuration. */
252 #ifdef LD_TEXT_START_ADDR
253 STARTFLAGS = "-T" LD_TEXT_START_ADDR "-e" "__start"
254 #else
255 STARTFLAGS =
256 #endif
257
258 #ifdef ORDINARY_LINK
259 LD = $(CC) $(CFLAGS)
260 #else
261 #ifdef COFF_ENCAPSULATE
262 LD=$(CC) -nostdlib
263 #else /* not ORDINARY_LINK */
264 #ifdef LINKER
265 LD=LINKER
266 #else /* ! defined (LINKER) */
267 LD=ld
268 #endif /* ! defined (LINKER) */
269 #endif /* ! defined (COFF_ENCAPSULATE) */
270 #endif /* not ORDINARY_LINK */
271 152
272 #ifdef ENERGIZE 153 #ifdef ENERGIZE
273 # ifdef EMACS_BTL 154 # ifdef EMACS_BTL
274 BTL_dir=$(srcdir)/../btl 155 BTL_dir=$(srcdir)/../btl
275 BTL_objs = cadillac-btl.o cadillac-btl-process.o cadillac-btl-asm.o cadillac-btl-emacs.o 156 BTL_objs = cadillac-btl.o cadillac-btl-process.o cadillac-btl-asm.o cadillac-btl-emacs.o
278 freecheck_objs = free-hook.o 159 freecheck_objs = free-hook.o
279 # endif /* FREE */ 160 # endif /* FREE */
280 energize_objs = energize.o $(freecheck_objs) 161 energize_objs = energize.o $(freecheck_objs)
281 #endif /* ENERGIZE */ 162 #endif /* ENERGIZE */
282 163
283 #ifdef HAVE_UNIXOID_EVENT_LOOP 164 ## lastfile must follow all files whose initialized data areas should
284 event_unixoid_objs = event-unixoid.o 165 ## be dumped as pure by dump-emacs.
285 #endif 166
286 167 ## NOTE: The last line cannot be all macros, because make will barf
287 /* lastfile must follow all files whose initialized data areas should 168 ## if they all come out null.
288 be dumped as pure by dump-emacs. */
289
290 /* NOTE: The last line cannot be all macros, because make will barf
291 if they all come out null. */
292 169
293 objs=\ 170 objs=\
294 abbrev.o alloc.o blocktype.o buffer.o bytecode.o\ 171 abbrev.o alloc.o blocktype.o buffer.o bytecode.o\
295 callint.o callproc.o casefiddle.o casetab.o chartab.o\ 172 callint.o callproc.o casefiddle.o casetab.o chartab.o\
296 cmdloop.o cmds.o console.o console-stream.o\ 173 cmdloop.o cmds.o console.o console-stream.o\
297 data.o device.o dired.o doc.o doprnt.o dynarr.o\ 174 data.o device.o dired.o doc.o doprnt.o dynarr.o\
298 editfns.o elhash.o emacs.o\ 175 editfns.o elhash.o emacs.o\
299 $(energize_objs) eval.o events.o $(extra_objs)\ 176 $(energize_objs) eval.o events.o $(extra_objs)\
300 event-stream.o $(event_unixoid_objs) extents.o faces.o\ 177 event-stream.o extents.o faces.o\
301 fileio.o filelock.o filemode.o floatfns.o fns.o font-lock.o\ 178 fileio.o filelock.o filemode.o floatfns.o fns.o font-lock.o\
302 frame.o general.o getloadavg.o glyphs.o\ 179 frame.o general.o getloadavg.o glyphs.o\
303 $(gui_objs) hash.o indent.o insdel.o intl.o\ 180 $(gui_objs) hash.o indent.o insdel.o intl.o\
304 keymap.o $(RTC_patch_objs) lread.o lstream.o\ 181 keymap.o $(RTC_patch_objs) lread.o lstream.o\
305 macros.o marker.o md5.o minibuf.o objects.o opaque.o\ 182 macros.o marker.o md5.o minibuf.o objects.o opaque.o\
335 #ifdef HAVE_X_WINDOWS 212 #ifdef HAVE_X_WINDOWS
336 213
337 # ifdef EXTERNAL_WIDGET 214 # ifdef EXTERNAL_WIDGET
338 external_widget_objs = ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o 215 external_widget_objs = ExternalShell.o extw-Xt-nonshared.o extw-Xlib-nonshared.o
339 216
340 /* Now we try to figure out how to link a shared library. 217 ## Now we try to figure out how to link a shared library.
341 If we cannot figure it out, leave EXTW_LINK undefined and a shared 218 ## If we cannot figure it out, leave EXTW_LINK undefined and a shared
342 library will not be created. */ 219 ## library will not be created.
343 220
344 # ifdef USE_GCC 221 # ifdef USE_GCC
345 # ifdef USG5 222 # ifdef USG5
346 # define EXTW_LINK(objs, output) $(CC) -shared objs -Xlinker -z -Xlinker text -o output 223 # define EXTW_LINK(objs, output) $(CC) -shared objs -Xlinker -z -Xlinker text -o output
347 /* I cannot figure out how to do shared a.out libraries, so just punt. */ 224 ## I cannot figure out how to do shared a.out libraries, so just punt.
348 # elif !defined (LINUX) || defined (__ELF__) 225 # elif !defined (LINUX) || defined (__ELF__)
349 # define EXTW_LINK(objs, output) $(CC) -shared objs -o output 226 # define EXTW_LINK(objs, output) $(CC) -shared objs -o output
350 # endif 227 # endif
351 # elif defined (USG5) 228 # elif defined (USG5)
352 # if defined (IRIX) 229 # if defined (IRIX)
354 # else /* not IRIX */ 231 # else /* not IRIX */
355 # define EXTW_LINK(objs, output) $(CC) -G objs -z text -o output 232 # define EXTW_LINK(objs, output) $(CC) -G objs -z text -o output
356 # endif /* not IRIX */ 233 # endif /* not IRIX */
357 # else /* not USG5 */ 234 # else /* not USG5 */
358 # if defined (DEC_ALPHA) && defined (OSF1) 235 # if defined (DEC_ALPHA) && defined (OSF1)
359 # define EXTW_LINK(objs, output) $(LD) $(ldflags) LD_SWITCH_SHARED -d objs -o output $(LIBES) 236 # define EXTW_LINK(objs, output) $(LD) $(ldflags) $(ld_switch_shared) -d objs -o output $(LIBES)
360 # else /* !(DEC_ALPHA && OSF1) */ 237 # else /* !(DEC_ALPHA && OSF1) */
361 # define EXTW_LINK(objs, output) $(LD) -dc objs -assert pure-text -o output 238 # define EXTW_LINK(objs, output) $(LD) -dc objs -assert pure-text -o output
362 # endif /* !(DEC_ALPHA && OSF1) */ 239 # endif /* !(DEC_ALPHA && OSF1) */
363 # endif /* not USG5 */ 240 # endif /* not USG5 */
364 241
380 # endif /* EXTERNAL_WIDGET */ 257 # endif /* EXTERNAL_WIDGET */
381 258
382 X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs) 259 X11_objs = EmacsFrame.o EmacsShell.o TopLevelEmacsShell.o TransientEmacsShell.o EmacsManager.o $(external_widget_objs)
383 #endif /* HAVE_X_WINDOWS */ 260 #endif /* HAVE_X_WINDOWS */
384 261
385 /* define otherobjs as list of object files that make-docfile 262 ## define otherobjs as list of object files that make-docfile
386 should not be told about. */ 263 ## should not be told about.
387 otherobjs = $(BTL_objs) lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs) 264 otherobjs = $(BTL_objs) lastfile.o $(mallocobjs) $(rallocobjs) $(X11_objs)
388 265
389 #ifdef LISP_FLOAT_TYPE 266
390 float_lisp = ${lispdir}prim/float-sup.elc 267 LIBES = $(lwlib_libs) $(quantify_libs) $(ld_libs_all) $(GNULIB_VAR)
391 #endif 268
392 269 ## Enable recompilation of certain other files depending on system type.
393 #ifdef HAVE_X_WINDOWS 270
394 /* lisp files preloaded if compiled with support for X Windows */ 271 ## Enable inclusion of object files in temacs depending on system type.
395 # ifdef HAVE_TOOLBARS
396 x11_toolbar_lisp = ${lispdir}x11/x-toolbar.elc
397 # endif
398 # ifdef HAVE_MENUBARS
399 x11_menubar_lisp = ${lispdir}x11/x-menubar.elc
400 # endif
401 # ifdef HAVE_SCROLLBARS
402 x11_scrollbar_lisp = ${lispdir}x11/x-scrollbar.elc
403 # endif
404 x11_lisp=\
405 ${x11_menubar_lisp}\
406 ${lispdir}x11/x-faces.elc\
407 ${lispdir}x11/x-iso8859-1${null}.elc ${lispdir}x11/x-mouse.elc\
408 ${lispdir}x11/x-select.elc ${x11_scrollbar_lisp}\
409 ${x11_toolbar_lisp} ${lispdir}x11/x-misc.elc\
410 ${lispdir}x11/x-init.elc
411 #endif
412
413 #ifdef HAVE_TTY
414 /* lisp files preloaded if compiled with support for tty */
415 tty_lisp = ${lispdir}term/tty-init.elc
416 #endif
417
418 #ifdef MULE
419 #ifdef HAVE_X_WINDOWS
420 mule_x11_lisp = ${lispdir}mule/mule-x-init.elc
421 #endif
422 mule_lisp=\
423 ${lispdir}mule/mule-load.elc ${lispdir}mule/mule-coding.elc\
424 ${lispdir}mule/mule-charset.elc ${lispdir}mule/mule-files.elc\
425 ${lispdir}mule/mule-category.elc ${lispdir}mule/mule-misc.elc\
426 ${lispdir}mule/mule-ccl.elc\
427 ${lispdir}mule/mule-init.elc ${lispdir}mule/mule-cmds.elc\
428 ${lispdir}mule/kinsoku.elc\
429 ${mule_x11_lisp}\
430 ${lispdir}mule/arabic-hooks.elc\
431 ${lispdir}language/chinese.elc\
432 ${lispdir}language/cyrillic.elc\
433 ${lispdir}language/english.elc \
434 ${lispdir}mule/ethiopic-hooks.elc\
435 ${lispdir}language/european.elc\
436 ${lispdir}language/greek.elc\
437 ${lispdir}mule/hebrew-hooks.elc\
438 ${lispdir}language/japanese.elc\
439 ${lispdir}language/korean.elc\
440 ${lispdir}language/misc-lang.elc\
441 ${lispdir}language/thai.elc\
442 ${lispdir}mule/vietnamese-hooks-1${null}.elc\
443 ${lispdir}mule/vietnamese-hooks-2${null}.elc
444 #else
445 nomule_lisp = ${lispdir}prim/files-nomule.elc
446 #endif
447
448 #ifdef ENERGIZE
449 /* Lisp files preloaded if compiled with support for Energize */
450 energize_lisp=\
451 ${lispdir}comint/gdb.elc\
452 ${lispdir}comint/comint.elc ${lispdir}comint/shell.elc\
453 ${lispdir}utils/ring.elc ${lispdir}packages/compile.elc\
454 ${lispdir}modes/view-less.elc ${lispdir}emulators/evi.elc\
455 ${lispdir}packages/font-lock.elc ${lispdir}packages/fast-lock.elc\
456 ${lispdir}dired/dired.elc ${lispdir}dired/dired-x.elc\
457 ${lispdir}dired/dired-lucid.elc ${lispdir}prim/userlock.elc\
458 ${lispdir}energize/energize-init.elc\
459 ${lispdir}energize/energize-mode.elc\
460 ${lispdir}energize/energize-windows.elc\
461 ${lispdir}energize/energize-menus.elc\
462 ${lispdir}energize/energize-shell.elc\
463 ${lispdir}energize/energize-visit-use.elc\
464 ${lispdir}energize/energize-vi.elc\
465 ${lispdir}energize/energize-font-lock.elc\
466 ${lispdir}energize/energize-advice.elc
467 #endif
468
469 #ifdef SUNPRO
470 /* Lisp files preloaded if compiled with support for SunPro products */
471 sunpro_lisp=\
472 ${lispdir}sunpro/sunpro-init.elc\
473 ${lispdir}sunpro/sunpro-menubar.elc\
474 ${lispdir}sunpro/sunpro-keys.elc\
475 ${lispdir}eos/sun-eos-init.elc\
476 ${lispdir}eos/sun-eos-load.elc\
477 ${lispdir}eos/sun-eos-common.elc\
478 ${lispdir}eos/sun-eos-editor.elc\
479 ${lispdir}eos/sun-eos-browser.elc\
480 ${lispdir}eos/sun-eos-debugger.elc\
481 ${lispdir}eos/sun-eos-debugger-extra.elc\
482 ${lispdir}eos/sun-eos-toolbar.elc\
483 ${lispdir}eos/sun-eos-menubar.elc\
484 ${lispdir}comint/comint.elc\
485 ${lispdir}utils/ring.elc\
486 ${lispdir}utils/annotations.elc\
487 ${lispdir}modes/cc-mode.elc\
488 ${lispdir}modes/imenu.elc\
489 ${lispdir}utils/reporter.elc
490 #endif
491
492 #ifdef TOOLTALK
493 /* Lisp files preloaded if compiled with support for Tooltalk */
494 tooltalk_lisp=\
495 ${lispdir}tooltalk/tooltalk-load.elc\
496 ${lispdir}tooltalk/tooltalk-macros.elc\
497 ${lispdir}tooltalk/tooltalk-util.elc\
498 ${lispdir}tooltalk/tooltalk-init.elc
499 #endif
500
501 #ifdef LISP_COMMAND_LOOP
502 cmdloop_lisp = ${lispdir}prim/cmdloop1.elc
503 #endif
504
505 #ifdef HAVE_TOOLBARS
506 toolbar_lisp = ${lispdir}prim/toolbar.elc
507 #endif
508 #ifdef HAVE_MENUBARS
509 menubar_lisp = ${lispdir}prim/menubar.elc
510 #endif
511 #ifdef HAVE_SCROLLBARS
512 scrollbar_lisp = ${lispdir}prim/scrollbar.elc
513 #endif
514 #ifdef HAVE_DIALOGS
515 dialog_lisp = ${lispdir}prim/dialog.elc
516 #endif
517 #ifdef HAVE_WINDOW_SYSTEM
518 mouse_lisp=\
519 ${lispdir}prim/gui.elc\
520 ${lispdir}prim/mouse.elc\
521 ${lispdir}prim/mode-motion.elc
522 #endif
523
524 /* List of Lisp files loaded into the dumped Emacs.
525 Every file that is loaded from loadup.el must be enumerated
526 here, or the functions will have no docstrings.
527 This is dumb - this list should be generated automatically.
528 [Note: "version.el" is included in the doc separately, but is not listed
529 here because we do not want things to appear to be out-of-date just
530 because the version number has been incremented. -- D.N.G. 8/28/93]
531 */
532 lisp=\
533 ${lispdir}paths.el ${lispdir}prim/featurep.elc\
534 ${lispdir}prim/loaddefs.elc ${lispdir}prim/auto-autoloads.elc\
535 ${lispdir}prim/loadup.el ${lispdir}prim/subr.elc\
536 ${lispdir}prim/cmdloop.elc ${cmdloop_lisp}\
537 ${lispdir}utils/text-props.elc ${mouse_lisp}\
538 ${lispdir}prim/keymap.elc ${lispdir}prim/syntax.elc\
539 ${lispdir}prim/minibuf.elc ${lispdir}prim/faces.elc\
540 ${lispdir}prim/objects.elc ${lispdir}prim/process.elc\
541 ${lispdir}prim/keydefs.elc ${lispdir}prim/device.elc\
542 ${lispdir}prim/obsolete.elc ${lispdir}prim/glyphs.elc\
543 ${lispdir}prim/extents.elc ${lispdir}prim/backquote.elc\
544 ${lispdir}prim/events.elc ${lispdir}prim/console.elc\
545 ${lispdir}utils/map-ynp.elc ${lispdir}prim/modeline.elc\
546 ${lispdir}modes/list-mode.elc\
547 ${lispdir}utils/derived.elc ${lispdir}cl/cl.elc\
548 ${lispdir}cl/cl-defs.elc ${lispdir}prim/undo-stack.elc\
549 ${lispdir}prim/simple.elc ${lispdir}prim/help.elc\
550 ${lispdir}prim/files.elc ${lispdir}utils/lib-complete.elc\
551 ${lispdir}prim/indent.elc ${lispdir}prim/frame.elc\
552 ${toolbar_lisp} ${lispdir}prim/format.elc\
553 ${lispdir}prim/window.elc ${lispdir}prim/window-xemacs.elc\
554 ${lispdir}prim/startup.elc\
555 ${lispdir}prim/lisp.elc ${lispdir}prim/page.elc\
556 ${lispdir}prim/register.elc ${lispdir}iso/iso8859-1${null}.elc\
557 ${lispdir}prim/paragraphs.elc ${lispdir}modes/lisp-mode.elc\
558 ${lispdir}modes/text-mode.elc ${lispdir}prim/fill.elc\
559 ${lispdir}prim/isearch-mode.elc ${lispdir}prim/misc.elc\
560 ${lispdir}packages/vc-hooks.elc\
561 ${lispdir}prim/replace.elc ${lispdir}prim/specifier.elc\
562 ${lispdir}modes/auto-show.elc ${sunpro_lisp} ${tty_lisp}\
563 ${lispdir}bytecomp/bytecomp-runtime.elc ${float_lisp}\
564 ${lispdir}prim/itimer.elc ${lispdir}prim/itimer-autosave.elc\
565 ${lispdir}ediff/ediff-hook.elc\
566 ${lispdir}custom/widget.elc ${lispdir}custom/custom.elc\
567 ${lispdir}prim/cus-start.elc\
568 ${lispdir}packages/fontl-hooks.elc ${scrollbar_lisp}\
569 ${lispdir}prim/buffer.elc ${menubar_lisp}\
570 ${lispdir}packages/buff-menu.elc ${dialog_lisp} ${mule_lisp} ${nomule_lisp}\
571 ${lispdir}modes/abbrev.elc ${x11_lisp} ${energize_lisp} ${tooltalk_lisp}
572
573 /* Other Lisp files that are not dumped out but where it is convenient
574 (or required?) for them to be byte-compiled early, before xemacs is
575 dumped out. Avoid listing them in ${lisp} because then the
576 doc-snarfing routines get confused. */
577 otherlisp=\
578 ${lispdir}bytecomp/bytecomp.elc\
579 ${lispdir}bytecomp/byte-optimize.elc\
580 ${lispdir}utils/advice.elc
581
582 LIBES = $(LWLIB_LIBS) $(quantify_libs) $(ld_libs_all) LIBS_DEBUG $(GNULIB_VAR)
583
584 /* Enable recompilation of certain other files depending on system type. */
585
586 /* Enable inclusion of object files in temacs depending on system type. */
587 #ifndef OBJECTS_SYSTEM 272 #ifndef OBJECTS_SYSTEM
588 #define OBJECTS_SYSTEM 273 #define OBJECTS_SYSTEM
589 #endif 274 #endif
590 275
591 #ifndef OBJECTS_MACHINE 276 #ifndef OBJECTS_MACHINE
610 -if [ -w ${srcdir}/../lisp ]; then \ 295 -if [ -w ${srcdir}/../lisp ]; then \
611 w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l inc-vers; \ 296 w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l inc-vers; \
612 else true; fi 297 else true; fi
613 @touch SATISFIED 298 @touch SATISFIED
614 -$(DUMPENV) ./temacs -nl -batch -l loadup.el dump 299 -$(DUMPENV) ./temacs -nl -batch -l loadup.el dump
615 @if [ ! -f SATISFIED ]; then \ 300 @if test ! -f SATISFIED; then $(MAKE) $@; fi
616 $(MAKE) release; \ 301 @$(RM) SATISFIED
617 fi
618 @/bin/rm -f SATISFIED
619 #else /* ! defined (HAVE_SHM) */ 302 #else /* ! defined (HAVE_SHM) */
620 -if [ -w ${srcdir}/../lisp ]; then \ 303 -if [ -w ${srcdir}/../lisp ]; then \
621 w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l inc-vers; \ 304 w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l inc-vers; \
622 else true; fi 305 else true; fi
623 @touch SATISFIED 306 @touch SATISFIED
624 -$(DUMPENV) ./temacs -batch -l loadup.el dump 307 -$(DUMPENV) ./temacs -batch -l loadup.el dump
625 @if [ ! -f SATISFIED ]; then \ 308 @if test ! -f SATISFIED; then $(MAKE) $@; fi
626 $(MAKE) release; \ 309 @$(RM) SATISFIED
627 fi
628 @/bin/rm -f SATISFIED
629 #endif /* ! defined (HAVE_SHM) */ 310 #endif /* ! defined (HAVE_SHM) */
630 touch release 311 touch release
631 #endif /* ! defined (CANNOT_DUMP) */ 312 #endif /* ! defined (CANNOT_DUMP) */
632 313
633 xemacs: temacs ${libsrc}DOC ${lisp} $(mo_file) ${other_files} 314 xemacs: temacs ${libsrc}DOC ${lisp} $(mo_file) ${other_files}
634 @touch SATISFIED 315 @touch SATISFIED
635 -$(DUMPENV) ./temacs -batch -l loadup.el dump 316 -$(DUMPENV) ./temacs -batch -l loadup.el dump
636 @if [ ! -f SATISFIED ]; then \ 317 @if test ! -f SATISFIED; then $(MAKE) $@; fi
637 $(MAKE) xemacs; \ 318 @$(RM) SATISFIED
638 fi
639 @/bin/rm -f SATISFIED
640 319
641 xemacs-no-site-file: temacs ${libsrc}DOC ${lisp} $(mo_file) ${other_files} 320 xemacs-no-site-file: temacs ${libsrc}DOC ${lisp} $(mo_file) ${other_files}
642 @touch SATISFIED 321 @touch SATISFIED
643 -$(DUMPENV) ./temacs -batch -l loadup.el dump no-site-file 322 -$(DUMPENV) ./temacs -batch -l loadup.el dump no-site-file
644 @test ! -f SATISFIED && $(MAKE) xemacs-no-site-file 323 @if test ! -f SATISFIED; then $(MAKE) $@; fi
645 @/bin/rm -f SATISFIED 324 @$(RM) SATISFIED
646 325
647 obj_src = $(objs:.o=.c) 326 obj_src = $(objs:.o=.c)
648 327
649 #ifdef DYNODUMP 328 #ifdef DYNODUMP
650 dynodump_builddir = $(dot)$(dot)/dynodump 329 dynodump_deps = ../dynodump/dynodump.so
651 dynodump_deps = $(dynodump_builddir)/dynodump.so 330 ../dynodump/dynodump.so:
652 $(dynodump_builddir)/dynodump.so: force 331 cd ../dynodump && ${MAKE} ${MFLAGS}
653 cd ${dynodump_builddir} && ${MAKE} ${MFLAGS}
654 #endif /* DYNODUMP */ 332 #endif /* DYNODUMP */
655 333
656 #ifdef NO_DOC_FILE 334 ${libsrc}DOC:
657 ${libsrc}DOC: ${libsrc}make-docfile 335 $(RM) ${libsrc}DOC
658 #else 336 -${DUMPENV} ./temacs -batch -l ../prim/make-docfile.el -- \
659 ${libsrc}DOC: ${libsrc}make-docfile ${obj_src} ${lisp} 337 -o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \
660 #endif 338 ${obj_src} ${mallocdocsrc} ${rallocdocsrc}
661 rm -f ${libsrc}DOC
662 ${libsrc}make-docfile -d ${srcdir} -i ${libsrc}../site-packages \
663 ${obj_src} ${mallocdocsrc} ${rallocdocsrc} ${lispdir}version.el \
664 ${lisp} > ${libsrc}DOC
665 339
666 dump_elcs: dump-elcs 340 dump_elcs: dump-elcs
667 341
668 dump-elcs: temacs 342 dump-elcs: temacs
669 @touch SATISFIED 343 @touch SATISFIED
670 -$(LOADPATH) ./temacs -batch -l ../prim/update-elc.el $(lisp) $(otherlisp) 344 -${DUMPENV} ./temacs -batch -l ../prim/update-elc.el
671 @if [ ! -f SATISFIED ]; then \ 345 @if [ ! -f SATISFIED ]; then \
672 $(MAKE) dump-elcs; \ 346 $(MAKE) dump-elcs; \
673 fi 347 fi
674 @/bin/rm -f SATISFIED 348 @$(RM) SATISFIED
675 349
676 all-elc all-elcs: 350 all-elc all-elcs:
677 cd .. && $(MAKE) all-elc $(MFLAGS) 351 cd .. && $(MAKE) all-elc $(MFLAGS)
678 352
679 #ifdef I18N3 353 #ifdef I18N3
689 #endif 363 #endif
690 364
691 ${mo_dir}emacs.po: ${libsrc}make-msgfile ${libsrc}make-po ${objs} ${lisp} 365 ${mo_dir}emacs.po: ${libsrc}make-msgfile ${libsrc}make-po ${objs} ${lisp}
692 ${libsrc}make-msgfile -o ${libsrc}messages ${objs} ${lisp} ${otherlisp} 366 ${libsrc}make-msgfile -o ${libsrc}messages ${objs} ${lisp} ${otherlisp}
693 cd ${libsrc} && ${xgettext} ${xgettext_args} 367 cd ${libsrc} && ${xgettext} ${xgettext_args}
694 rm -f ${mo_dir}emacs.po 368 $(RM) ${mo_dir}emacs.po
695 cd ${libsrc} && ${libsrc}make-po -a ${mo_dir}emacs.po DOC 369 cd ${libsrc} && ${libsrc}make-po -a ${mo_dir}emacs.po DOC
696 370
697 ${mo_dir}emacs.mo: ${mo_dir}emacs.po 371 ${mo_dir}emacs.mo: ${mo_dir}emacs.po
698 cd ${mo_dir} && ${msgfmt} -o emacs.mo emacs.po 372 cd ${mo_dir} && ${msgfmt} -o emacs.mo emacs.po
699 373
706 #endif /* I18N3 */ 380 #endif /* I18N3 */
707 381
708 ${libsrc}make-docfile: 382 ${libsrc}make-docfile:
709 cd ${libsrc} && ${MAKE} ${MFLAGS} make-docfile 383 cd ${libsrc} && ${MAKE} ${MFLAGS} make-docfile
710 384
711 /* Lint Section */ 385 ## Lint Section
712 LINT.c=$(LINT) $(LINTFLAGS) $(LINTINCLUDES) 386 LINT.c=$(LINT) $(LINTFLAGS) $(LINTINCLUDES)
713 LINTFILES= $(objs:.o=.ln) 387 LINTFILES= $(objs:.o=.ln)
714 LINTINCLUDES = $(cppflags) 388 LINTINCLUDES = $(cppflags)
715 /* LINTFLAGS= -fd -m -p -s -u -v -x */ 389 ## LINTFLAGS= -fd -m -p -s -u -v -x
716 LINTFLAGS= -fd -m -s -u -v -x 390 LINTFLAGS= -fd -m -s -u -v -x
717 lint: $(LINTFILES) 391 lint: $(LINTFILES)
718 $(LINT.c) $(LINTFILES) 392 $(LINT.c) $(LINTFILES)
719 /* end of Lint Section */ 393 ## end of Lint Section
720
721 force:
722 $(LWLIB_BUILDDIR)/liblw.a: force
723 cd ${LWLIB_BUILDDIR} && ${MAKE} ${MFLAGS}
724
725 /* Some systems define this to cause parallel Make-ing. */
726 #ifndef MAKE_PARALLEL
727 #define MAKE_PARALLEL
728 #endif
729 394
730 temacs_deps=\ 395 temacs_deps=\
731 MAKE_PARALLEL $(LOCALCPP) $(SHORT) $(STARTFILES)\ 396 $(LOCALCPP) $(SHORT) $(start_files) ${objs} ${otherobjs}\
732 ${objs} ${otherobjs} OBJECTS_SYSTEM OBJECTS_MACHINE\ 397 $(lwlib_deps) $(dynodump_deps) prefix-args
733 $(LWLIB_DEPS) $(dynodump_deps) prefix-args
734 398
735 temacs_link_args=\ 399 temacs_link_args=\
736 ${STARTFLAGS} ${ldflags} LD_SWITCH_CALL_SHARED\ 400 ${start_flags} ${ldflags} $(ld_switch_call_shared)\
737 -o $@ ${STARTFILES} ${objs} ${otherobjs}\ 401 -o $@ ${start_files} ${objs} ${otherobjs} ${LIBES}
738 OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES}
739
740 temacs_deps: $(temacs_deps)
741 402
742 temacs: $(temacs_deps) 403 temacs: $(temacs_deps)
743 $(LD) $(temacs_link_args) 404 $(LD) $(temacs_link_args)
744 405
745 rtc_patch.o: 406 rtc_patch.o:
746 rtc_patch_area -o $@ 407 rtc_patch_area -o $@
747 408
748 rtcmacs: $(temacs_deps) rtc_patch.o 409 rtcmacs: $(temacs_deps) rtc_patch.o
749 rm -f temacs; $(MAKE) $(MAKE_FLAGS) temacs RTC_patch_objs=rtc_patch.o 410 $(RM) temacs; $(MAKE) $(MAKE_FLAGS) temacs RTC_patch_objs=rtc_patch.o
750 mv temacs rtcmacs 411 mv temacs rtcmacs
751 412
752 rtcrun: rtcmacs 413 rtcrun: rtcmacs
753 dbx -q -C -c \ 414 dbx -q -C -c \
754 'dbxenv rtc_error_log_file_name /dev/fd/1; \ 415 'dbxenv rtc_error_log_file_name /dev/fd/1; \
774 435
775 TransientEmacsShell.o : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o 436 TransientEmacsShell.o : ${srcdir}/EmacsShell-sub.c TopLevelEmacsShell.o
776 $(CC) -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c 437 $(CC) -c $(cflags) -DDEFINE_TRANSIENT_EMACS_SHELL ${srcdir}/EmacsShell-sub.c
777 mv EmacsShell-sub.o TransientEmacsShell.o 438 mv EmacsShell-sub.o TransientEmacsShell.o
778 439
779 /* Position-independent code for shared library creation */ 440 ## Position-independent code for shared library creation
780 #if USE_GCC 441 #if USE_GCC
781 pic_arg = -fpic 442 pic_arg = -fpic
782 #elif defined (IRIX) 443 #elif defined (IRIX)
783 pic_arg = -KPIC 444 pic_arg = -KPIC
784 # else 445 # else
792 external_client_xlib_objs_shared = ExternalClient-Xlib-shared.o extw-Xlib-shared.o 453 external_client_xlib_objs_shared = ExternalClient-Xlib-shared.o extw-Xlib-shared.o
793 external_client_motif_objs_nonshared = ExternalClient-Xm-nonshared.o extw-Xt-nonshared.o extw-Xlib-nonshared.o 454 external_client_motif_objs_nonshared = ExternalClient-Xm-nonshared.o extw-Xt-nonshared.o extw-Xlib-nonshared.o
794 external_client_xt_objs_nonshared = ExternalClient-Xt-nonshared.o extw-Xt-nonshared.o extw-Xlib-nonshared.o 455 external_client_xt_objs_nonshared = ExternalClient-Xt-nonshared.o extw-Xt-nonshared.o extw-Xlib-nonshared.o
795 external_client_xlib_objs_nonshared = ExternalClient-Xlib-nonshared.o extw-Xlib-nonshared.o 456 external_client_xlib_objs_nonshared = ExternalClient-Xlib-nonshared.o extw-Xlib-nonshared.o
796 457
797 /* Add dependencies so things work right with a parallel make */ 458 ## Add dependencies so things work right with a parallel make
798 ExternalClient-Xm-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-shared.o ExternalClient-Xm-nonshared.o 459 ExternalClient-Xm-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-shared.o ExternalClient-Xm-nonshared.o
799 $(CC) -c $(pic_arg) $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c 460 $(CC) -c $(pic_arg) $(cflags) -DEXTW_USES_MOTIF ${srcdir}/ExternalClient.c
800 mv ExternalClient.o ExternalClient-Xm-shared.o 461 mv ExternalClient.o ExternalClient-Xm-shared.o
801 462
802 ExternalClient-Xt-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o 463 ExternalClient-Xt-shared.o: ${srcdir}/ExternalClient.c ExternalClient-Xt-nonshared.o
817 478
818 ExternalClient-Xlib-nonshared.o: ${srcdir}/ExternalClient-Xlib.c 479 ExternalClient-Xlib-nonshared.o: ${srcdir}/ExternalClient-Xlib.c
819 $(CC) -c $(cflags) ${srcdir}/ExternalClient-Xlib.c 480 $(CC) -c $(cflags) ${srcdir}/ExternalClient-Xlib.c
820 mv ExternalClient-Xlib.o ExternalClient-Xlib-nonshared.o 481 mv ExternalClient-Xlib.o ExternalClient-Xlib-nonshared.o
821 482
822 /* We compile the common files twice (once with PIC and once without) 483 ## We compile the common files twice (once with PIC and once without)
823 because on some systems, compiling with PIC but not linking into 484 ## because on some systems, compiling with PIC but not linking into
824 a shared library messes things up. */ 485 ## a shared library messes things up.
486
825 extw-Xt-shared.o: ${srcdir}/extw-Xt.c extw-Xt-nonshared.o 487 extw-Xt-shared.o: ${srcdir}/extw-Xt.c extw-Xt-nonshared.o
826 $(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xt.c 488 $(CC) -c $(pic_arg) $(cflags) ${srcdir}/extw-Xt.c
827 mv extw-Xt.o extw-Xt-shared.o 489 mv extw-Xt.o extw-Xt-shared.o
828 490
829 extw-Xlib-shared.o: ${srcdir}/extw-Xlib.c extw-Xlib-nonshared.o 491 extw-Xlib-shared.o: ${srcdir}/extw-Xlib.c extw-Xlib-nonshared.o
869 shortnames: 531 shortnames:
870 cd ${shortnamesdir} && ${MAKE} ${MFLAGS} 532 cd ${shortnamesdir} && ${MAKE} ${MFLAGS}
871 #endif 533 #endif
872 534
873 config.h: ${srcdir}/config.h.in 535 config.h: ${srcdir}/config.h.in
874 @echo "The file $@ needs to be set up from config.h.in."
875 @echo "Consult the file \`INSTALL' for instructions for building Emacs."
876 exit 1
877
878 puresize_adjust.h: ${srcdir}/puresize.h 536 puresize_adjust.h: ${srcdir}/puresize.h
879 @echo "The file $@ still needs to be generated."
880 @echo "Please run 'make' from the top-level."
881 exit 1
882
883 paths.h: ${srcdir}/paths.h.in 537 paths.h: ${srcdir}/paths.h.in
884 @echo "The file $@ needs to be set up from paths.h.in."
885 @echo "Consult the file \`INSTALL' for instructions for building Emacs."
886 exit 1
887
888 Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad 538 Emacs.ad.h: ${srcdir}/${etcdir}Emacs.ad
889 @echo "The file $@ needs to be set up from ${srcdir}/${etcdir}Emacs.ad" 539
890 @echo "Consult the file \`INSTALL' for instructions for building Emacs." 540 config.h puresize_adjust.h paths.h Emacs.ad.h :
891 exit 1 541 @echo "The file $@ needs to be re-generated."
892 542 @echo "Please run a make in the top level directory."
893 /* Some machines have alloca built-in. 543 @echo "Consult the file \`INSTALL' for instructions for building XEmacs."
894 They should define HAVE_ALLOCA, or may just let alloca.s 544 @exit 1
895 be used but generate no code. 545
896 Some have it written in assembler in alloca.s. 546 ## Some machines have alloca built-in.
897 Some use the C version in alloca.c (these define C_ALLOCA in config.h). 547 ## They should define HAVE_ALLOCA, or may just let alloca.s
898 */ 548 ## be used but generate no code.
549 ## Some have it written in assembler in alloca.s.
550 ## Some use the C version in alloca.c (these define C_ALLOCA in config.h).
551
899 552
900 #ifdef C_ALLOCA 553 #ifdef C_ALLOCA
901 /* We could put something in alloca.c to #define free and malloc 554 ## We could put something in alloca.c to #define free and malloc
902 whenever emacs was #defined, but that's not appropriate for all 555 ## whenever emacs was #defined, but that's not appropriate for all
903 users of alloca in Emacs. Check out ../lib-src/getopt.c. */ 556 ## users of alloca in Emacs. Check out ../lib-src/getopt.c. */
557
904 alloca.o : ${srcdir}/alloca.c 558 alloca.o : ${srcdir}/alloca.c
905 $(CC) -c -Dfree=xfree -Dmalloc=xmalloc $(cflags) $< 559 $(CC) -c -Dfree=xfree -Dmalloc=xmalloc $(cflags) $<
906 #else 560 #else
907 #ifndef HAVE_ALLOCA 561 #ifndef HAVE_ALLOCA
908 alloca.o : ${srcdir}/alloca.s config.h 562 alloca.o : ${srcdir}/alloca.s config.h
909 /* $(CPP) is cc -E, which may get confused by filenames 563 ## $(CPP) is cc -E, which may get confused by filenames
910 that do not end in .c. So copy file to a safe name. */ 564 ## that do not end in .c. So copy file to a safe name. */
911 cp ${srcdir}/alloca.s allocatem.c 565 ## cp ${srcdir}/alloca.s allocatem.c
912 /* Remove any ^L, blank lines, and preprocessor comments, 566 ## Remove any ^L, blank lines, and preprocessor comments,
913 since some assemblers barf on them. Use a different basename for the 567 ## since some assemblers barf on them. Use a different basename for the
914 output file, since some stupid compilers (Green Hill) use that 568 ## output file, since some stupid compilers (Green Hill) use that
915 name for the intermediate assembler file. */ 569 ## name for the intermediate assembler file.
916 $(CPP) $(cppflags) allocatem.c | \ 570 $(CPP) $(cppflags) allocatem.c | \
917 sed -e 's/ //' -e 's/^#.*//' | \ 571 sed -e 's/ //' -e 's/^#.*//' | \
918 sed -n -e '/^..*$$/p' > allocax.s 572 sed -n -e '/^..*$$/p' > allocax.s
919 -rm -f alloca.o 573 @$(RM) alloca.o
920 /* Xenix, in particular, needs to run assembler via cc. */ 574 ## Xenix, in particular, needs to run assembler via cc.
921 $(CC) -c allocax.s 575 $(CC) -c allocax.s
922 mv allocax.o alloca.o 576 mv allocax.o alloca.o
923 rm -f allocax.s allocatem.c 577 $(RM) allocax.s allocatem.c
924 #endif /* HAVE_ALLOCA */ 578 #endif /* HAVE_ALLOCA */
925 #endif /* ! defined (C_ALLOCA) */ 579 #endif /* ! defined (C_ALLOCA) */
926 580
927 #ifdef EMACS_BTL 581 #ifdef EMACS_BTL
928 BTL_includes = -I$(BTL_dir) 582 BTL_includes = -I$(BTL_dir)
944 $(CC) -c $(sound_cflags) $(cflags) $< 598 $(CC) -c $(sound_cflags) $(cflags) $<
945 hpplay.o: ${srcdir}/hpplay.c 599 hpplay.o: ${srcdir}/hpplay.c
946 $(CC) -c -Demacs $(sound_cflags) $(cflags) $< 600 $(CC) -c -Demacs $(sound_cflags) $(cflags) $<
947 #endif /* HAVE_NATIVE_SOUND */ 601 #endif /* HAVE_NATIVE_SOUND */
948 602
949 /* System-specific programs to be made. 603 ## System-specific programs to be made.
950 ${other_files}, OBJECTS_SYSTEM and OBJECTS_MACHINE 604 ## ${other_files}, $(objects_system) and $(objects_machine)
951 select which of these should be compiled. */ 605 ## select which of these should be compiled. */
606
607 .PHONY : mostlyclean clean distclean realclean versionclean extraclean
952 608
953 mostlyclean: 609 mostlyclean:
954 rm -f temacs puremacs quantmacs prefix-args xmakefile* core depend.* \#* *.o 610 $(RM) temacs puremacs quantmacs prefix-args core depend.* \#* *.o *.i
955 rm -f ${libsrc}DOC
956 clean: mostlyclean 611 clean: mostlyclean
957 rm -f xemacs libextcli* 612 $(RM) xemacs libextcli* ${libsrc}DOC
958 /**/# This is used in making a distribution. 613 ## This is used in making a distribution.
959 /**/# Do not use it on development directories! 614 ## Do not use it on development directories!
960 distclean: clean versionclean 615 distclean: clean versionclean
961 rm -f config.h paths.h puresize_adjust.h Emacs.ad.h \ 616 $(RM) config.h paths.h puresize_adjust.h Emacs.ad.h \
962 rm -f Makefile Makefile.in .pure xemacs-version.h 617 Makefile Makefile.in .pure xemacs-version.h
963 realclean: distclean 618 realclean: distclean
964 rm -f TAGS 619 $(RM) TAGS
965 versionclean: 620 versionclean:
966 -rm -f xemacs ${libsrc}DOC 621 $(RM) xemacs ${libsrc}DOC
967 extraclean: realclean 622 extraclean: realclean
968 -rm -f *~ \#* m/?*~ s/?*~ 623 $(RM) *~ \#* m/?*~ s/?*~
969 624
970 /* The rule for the [sm] files has to be written a little funny to 625 ## The rule for the [sm] files has to be written a little funny to
971 avoid looking like a C comment to CPP. */ 626 ## avoid looking like a C comment to CPP.
627 .PHONY : lock unlock
972 SOURCES = *.[chm] *.pswm [sm]/?* COPYING paths.h.in Makefile.in.in \ 628 SOURCES = *.[chm] *.pswm [sm]/?* COPYING paths.h.in Makefile.in.in \
973 config.h.in README COPYING ChangeLog 629 config.h.in README COPYING ChangeLog
974 unlock: 630 unlock:
975 chmod u+w $(SOURCES) 631 chmod u+w $(SOURCES)
976 632
977 relock: 633 relock:
978 chmod -w $(SOURCES) 634 chmod -w $(SOURCES)
979 635
980 #ifdef __GNUC__ 636 #ifdef __GNUC__
981 637
982 /*** Dependency processing using GCC ***/ 638 ## Dependency processing using GCC
983 639
984 .c.dep: 640 .c.dep:
985 $(CC) -MM $(cflags) $< > $*.dep 641 $(CC) -MM $(cflags) $< > $*.dep
986 642
987 .SUFFIXES: .dep 643 .SUFFIXES: .dep
988 644
989 obj_dep = $(objs:.o=.dep) 645 obj_dep = $(objs:.o=.dep)
990 646
647 .PHONY : depend gnu-depend
648 ## #### Needs a bit of work: it doesn't see the object files that
649 ## we are not compiling
991 gnu-depend: $(obj_dep) 650 gnu-depend: $(obj_dep)
992 /* #### Needs a bit of work: it doesn't see the object files that
993 we are not compiling */
994 cat $(obj_dep) | sh ${libsrc}process-gnu-depends.sh > depend.out 651 cat $(obj_dep) | sh ${libsrc}process-gnu-depends.sh > depend.out
995 652
996 #endif /* GCC */ 653 #endif /* GCC */
997 654
998 /*** Dependency processing using makedepend ***/ 655 ## Dependency processing using makedepend
999 656
1000 depend: 657 depend:
1001 : > depend.tmp 658 : > depend.tmp
1002 makedepend -f depend.tmp -Dsubprocesses \ 659 makedepend -f depend.tmp -Dsubprocesses \
1003 -DHAVE_X_WINDOWS -DMULE -- $(cppflags) $(cflags) \ 660 -DHAVE_X_WINDOWS -DMULE -- $(cppflags) $(cflags) \
1009 cat /tmp/depend1.$$ >> depend.out 666 cat /tmp/depend1.$$ >> depend.out
1010 @# The things you have to do to pay homage to the lexer God ... frightening 667 @# The things you have to do to pay homage to the lexer God ... frightening
1011 echo '#endif /''* MULE *''/' >> depend.out 668 echo '#endif /''* MULE *''/' >> depend.out
1012 echo '' >> depend.out 669 echo '' >> depend.out
1013 cat /tmp/depend2.$$ >> depend.out 670 cat /tmp/depend2.$$ >> depend.out
1014 rm -f /tmp/depend1.$$ /tmp/depend2.$$ 671 $(RM) /tmp/depend1.$$ /tmp/depend2.$$
1015 672
1016 /* Manually-generated dependencies (makedepend misbehaves on these) */ 673 ## Manually-generated dependencies (makedepend misbehaves on these)
1017 674
1018 /* (actually makedepend does OK on these but we want to conditionalize 675 ## (actually makedepend does OK on these but we want to conditionalize them)
1019 them) */
1020 #ifdef EXTERNAL_WIDGET 676 #ifdef EXTERNAL_WIDGET
1021 ExternalClient-Xlib.o: extw-Xlib.h 677 ExternalClient-Xlib.o: extw-Xlib.h
1022 ExternalClient-Xm.o: config.h 678 ExternalClient-Xm.o: config.h
1023 ExternalClient-Xm.o: xintrinsicp.h 679 ExternalClient-Xm.o: xintrinsicp.h
1024 ExternalClient-Xm.o: ExternalClient.h 680 ExternalClient-Xm.o: ExternalClient.h
1061 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-process.c 717 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-process.c
1062 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl.h 718 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl.h
1063 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-extern.h 719 cadillac-btl-process.o: $(BTL_dir)/cadillac-btl-extern.h
1064 #endif /* EMACS_BTL */ 720 #endif /* EMACS_BTL */
1065 721
1066 /* (makedepend definitely misbehaves on these) */ 722 ## (makedepend definitely misbehaves on these)
1067 sgiplay.o: config.h 723 sgiplay.o: config.h
1068 sgiplay.o: libst.h 724 sgiplay.o: libst.h
1069 unexconvex.o: getpagesize.h 725 unexconvex.o: getpagesize.h
1070 unexec.o: getpagesize.h 726 unexec.o: getpagesize.h
1071 unexaix.o: config.h 727 unexaix.o: config.h
1079 unexhp9k3.o: config.h 735 unexhp9k3.o: config.h
1080 unexhp9k800.o: config.h 736 unexhp9k800.o: config.h
1081 unexmips.o: config.h 737 unexmips.o: config.h
1082 unexsunos4.o: config.h 738 unexsunos4.o: config.h
1083 739
1084 /* Dependencies generated by 'make depend' */ 740 ## Dependencies generated by 'make depend'
1085 741
1086 #ifdef MULE 742 #ifdef MULE
1087 EmacsFrame.o: mule-charset.h 743 EmacsFrame.o: mule-charset.h
1088 abbrev.o: mule-charset.h 744 abbrev.o: mule-charset.h
1089 alloc.o: mule-charset.h 745 alloc.o: mule-charset.h
1305 alloc.o: specifier.h 961 alloc.o: specifier.h
1306 alloc.o: systime.h 962 alloc.o: systime.h
1307 alloc.o: toolbar.h 963 alloc.o: toolbar.h
1308 alloc.o: window.h 964 alloc.o: window.h
1309 alloca.o: config.h 965 alloca.o: config.h
966 balloon_help.o: config.h
967 balloon_help.o: balloon_help.h
968 balloon-x.o: config.h
969 balloon-x.o: device.h
970 balloon-x.o: console-x.h
971 balloon-x.o: balloon_help.h
1310 blocktype.o: blocktype.h 972 blocktype.o: blocktype.h
1311 blocktype.o: config.h 973 blocktype.o: config.h
1312 blocktype.o: dynarr.h 974 blocktype.o: dynarr.h
1313 buffer.o: blocktype.h 975 buffer.o: blocktype.h
1314 buffer.o: buffer.h 976 buffer.o: buffer.h