annotate Makefile.in.in @ 617:af57a77cbc92

[xemacs-hg @ 2001-06-18 07:09:50 by ben] --------------------------------------------------------------- DOCUMENTATION FIXES: --------------------------------------------------------------- eval.c: Correct documentation. elhash.c: Doc correction. --------------------------------------------------------------- LISP OBJECT CLEANUP: --------------------------------------------------------------- bytecode.h, buffer.h, casetab.h, chartab.h, console-msw.h, console.h, database.c, device.h, eldap.h, elhash.h, events.h, extents.h, faces.h, file-coding.h, frame.h, glyphs.h, gui-x.h, gui.h, keymap.h, lisp-disunion.h, lisp-union.h, lisp.h, lrecord.h, lstream.h, mule-charset.h, objects.h, opaque.h, postgresql.h, process.h, rangetab.h, specifier.h, toolbar.h, tooltalk.h, ui-gtk.h: Add wrap_* to all objects (it was already there for a few of them) -- an expression to encapsulate a pointer into a Lisp object, rather than the inconvenient XSET*. "wrap" was chosen because "make" as in make_int(), make_char() is not appropriate. (It implies allocation. The issue does not exist for ints and chars because they are not allocated.) Full error checking has been added to these expressions. When used without error checking, non-union build, use of these expressions will incur no loss of efficiency. (In fact, XSET* is now defined in terms of wrap_* in a non-union build.) In a union build, you will also get no loss of efficiency provided that you have a decent optimizing compiler, and a compiler that either understands inlines or automatically inlines those particular functions. (And since people don't normally do their production builds on union, it doesn't matter.) Update the sample Lisp object definition in lrecord.h accordingly. dumper.c: Fix places in dumper that referenced wrap_object to reference its new name, wrap_pointer_1. buffer.c, bufslots.h, conslots.h, console.c, console.h, devslots.h, device.c, device.h, frame.c, frame.h, frameslots.h, window.c, window.h, winslots.h: -- Extract out the Lisp objects of `struct device' into devslots.h, just like for the other structures. -- Extract out the remaining (not copied into the window config) Lisp objects in `struct window' into winslots.h; use different macros (WINDOW_SLOT vs. WINDOW_SAVED_SLOT) to differentiate them. -- Eliminate the `dead' flag of `struct frame', since it duplicates information already available in `framemeths', and fix FRAME_LIVE_P accordingly. (Devices and consoles already work this way.) -- In *slots.h, switch to system where MARKED_SLOT is automatically undef'd at the end of the file. (Follows what winslots.h already does.) -- Update the comments at the beginning of *slots.h to be accurate. -- When making any of the above objects dead, zero it out entirely and reset all Lisp object slots to Qnil. (We were already doing this somewhat, but not consistently.) This (1) Eliminates the possibility of extra objects hanging around that ought to be GC'd, (2) Causes an immediate crash if anyone tries to access a structure in one of these objects, (3) Ensures consistent behavior wrt dead objects. dialog-msw.c: Use internal_object_printer, since this object should not escape. --------------------------------------------------------------- FIXING A CRASH THAT I HIT ONCE (AND A RELATED BAD BEHAVIOR): --------------------------------------------------------------- eval.c: Fix up some comments about the FSF implementation. Fix two nasty bugs: (1) condition_case_unwind frees the conses sitting in the catch->tag slot too quickly, resulting in a crash that I hit. (2) catches need to be unwound one at a time when calling unwind-protect code, rather than all at once at the end; otherwise, incorrect behavior can result. (A comment shows exactly how.) backtrace.h: Improve comment about FSF differences in the handler stack. --------------------------------------------------------------- FIXING A CRASH THAT I REPEATEDLY HIT WHEN USING THE MOUSE WHEEL UNDER MSWINDOWS: --------------------------------------------------------------- Basic idea: My crash is due either to a dead, non-marked, GC-collected frame inside of a window mirror, or a prematurely freed window mirror. We need to mark the Lisp objects inside of window mirrors. Tracking the lifespan of window mirrors and scrollbar instances is extremely hard, and there may well be lurking bugs where such objects are freed too soon. The only safe way to fix these problems (and it fixes both problems at once) is to make both of these structures Lisp objects. lrecord.h, emacs.c, inline.c, scrollbar-gtk.c, scrollbar-msw.c, scrollbar-x.c, scrollbar.c, scrollbar.h, symsinit.h: Make scrollbar instances actual Lisp objects. Mark the window mirrors in them. inline.c needs to know about scrollbar.h now. Record the new type in lrecord.h. Fix up scrollbar-*.c appropriately. Create a hash table in scrollbar-msw.c so that the scrollbar instances stored in scrollbar HWND's are properly GC-protected. Create complex_vars_of_scrollbar_mswindows() to create the hash table at startup, and call it from emacs.c. Don't store the scrollbar instance as a property of the GTK scrollbar, as it's not used and if we did this, we'd have to separately GC-protect it in a hash table, like in MS Windows. lrecord.h, frame.h, frame.c, frameslots.h, redisplay.c, window.c, window.h: Move mark_window_mirror from redisplay.c to window.c. Make window mirrors actual Lisp objects. Tell lrecord.h about them. Change the window mirror member of struct frame from a pointer to a Lisp object, and add XWINDOW_MIRROR in appropriate places. Mark the scrollbar instances in the window mirror. redisplay.c, redisplay.h, alloc.c: Delete mark_redisplay. Don't call mark_redisplay. We now mark frame-specific structures in mark_frame. NOTE: I also deleted an extremely questionable call to update_frame_window_mirrors(). It was extremely questionable before, and now totally impossible, since it will create Lisp objects during redisplay. frame.c: Mark the scrollbar instances, which are now Lisp objects. Call mark_gutter() here, not in mark_redisplay(). gutter.c: Update comments about correct marking. --------------------------------------------------------------- ISSUES BROUGHT UP BY MARTIN: --------------------------------------------------------------- buffer.h: Put back these macros the way Steve T and I think they ought to be. I already explained in a previous changelog entry why I think these macros should be the way I'd defined them. Once again: We fix these macros so they don't care about the type of their lvalues. The non-C-string equivalents of these already function in the same way, and it's correct because it should be OK to pass in a CBufbyte *, a BufByte *, a Char_Binary *, an UChar_Binary *, etc. The whole reason for these different types is to work around errors caused by signed-vs-unsigned non-matching types. Any possible error that might be caught in a DFC macro would also be caught wherever the argument is used elsewhere. So creating multiple macro versions would add no useful error-checking and just further complicate an already complicated area. As for Martin's "ANSI aliasing" bug, XEmacs is not ANSI-aliasing clean and probably never will be. Unless the board agrees to change XEmacs in this way (and we really don't want to go down that road), this is not a bug. sound.h: Undo Martin's type change. signal.c: Fix problem identified by Martin with Linux and g++ due to non-standard declaration of setitimer(). systime.h: Update the docs for "qxe_" to point out why making the encapsulation explicit is always the right way to go. (setitimer() itself serves as an example.) For 21.4: update-elc-2.el: Correct misplaced parentheses, making lisp/mule not get recompiled.
author ben
date Mon, 18 Jun 2001 07:10:32 +0000
parents 6452bb72f5b9
children 512e4a478e9d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
1 ## DIST: This is the distribution Makefile for XEmacs. configure can
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
2 ## DIST: make most of the changes to this file you might want, so try
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
3 ## DIST: that first.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
4
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
5 ## This file is part of XEmacs.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
6
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
7 ## XEmacs is free software; you can redistribute it and/or modify it
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
8 ## under the terms of the GNU General Public License as published by the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
9 ## Free Software Foundation; either version 2, or (at your option) any
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
10 ## later version.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
11
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
12 ## XEmacs is distributed in the hope that it will be useful, but WITHOUT
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
13 ## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
14 ## FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
15 ## for more details.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
16
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
17 ## You should have received a copy of the GNU General Public License
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
18 ## along with XEmacs; see the file COPYING. If not, write to
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
19 ## the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
20 ## Boston, MA 02111-1307, USA.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
21
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
22 ## make all to compile and build XEmacs.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
23 ## make install to build and install it.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
24 ## make install-only to install after a previous complete build
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
25 ## make TAGS to update tags tables.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
26
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
27 ## make clean or make mostlyclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
28 ## Delete all files from the current directory that are normally
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
29 ## created by building the program. Don't delete the files that
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
30 ## record the configuration. Also preserve files that could be made
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
31 ## by building, but normally aren't because the distribution comes
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
32 ## with them.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
33
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
34 ## Delete `.dvi' files here if they are not part of the distribution.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
35
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
36 ## make distclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
37 ## Delete all files from the current directory that are created by
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
38 ## configuring or building the program. If you have unpacked the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
39 ## source and built the program without creating any other files,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
40 ## `make distclean' should leave only the files that were in the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
41 ## distribution.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
42
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
43 ## make realclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
44 ## Delete everything from the current directory that can be
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
45 ## reconstructed with this Makefile. This typically includes
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
46 ## everything deleted by distclean, plus more: C source files
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
47 ## produced by Bison, tags tables, info files, and so on.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
48
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
49 ## make extraclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
50 ## Still more severe - delete backup and autosave files, too.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
51
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
52 #define NOT_C_CODE
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
53 #include "src/config.h"
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
54
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
55 #ifdef USE_GNU_MAKE
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
56 RECURSIVE_MAKE=$(MAKE)
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
57 #else
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
58 @SET_MAKE@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
59 RECURSIVE_MAKE=@RECURSIVE_MAKE@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
60 #endif
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
61
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
62 SHELL = /bin/sh
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
63 LANG = C
396
6719134a07c2 Import from CVS: tag r21-2-13
cvs
parents: 394
diff changeset
64 LC_ALL = C
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
65 RM = rm -f
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
66 MAKEPATH=./lib-src/make-path
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
67 pwd = /bin/pwd
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 426
diff changeset
68 TAR = tar
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
69
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
70 ## ==================== Things `configure' Might Edit ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
71
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
72 CC=@CC@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
73 CPP=@CPP@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
74 LN_S=@LN_S@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
75 CFLAGS=@CFLAGS@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
76 CPPFLAGS=@CPPFLAGS@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
77
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
78 ## These help us choose version- and architecture-specific directories
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
79 ## to install files in.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
80
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
81 ## This should be the number of the XEmacs version we're building,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
82 ## like `19.12' or `19.13'.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
83 version=@version@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
84
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
85 ## This should be the name of the configuration we're building XEmacs
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
86 ## for, like `mips-dec-ultrix' or `sparc-sun-sunos'.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
87 configuration=@configuration@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
88
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
89 ## This will be the name of the generated binary and is set automatically
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
90 ## by configure.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
91 PROGNAME=@PROGNAME@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
92
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
93 ## ==================== Where To Install Things ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
94
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
95 ## The default location for installation. Everything is placed in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
96 ## subdirectories of this directory. The default values for many of
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
97 ## the variables below are expressed in terms of this one, so you may
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
98 ## not need to change them. This defaults to /usr/local.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
99 prefix=@prefix@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
100
422
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
101 ## Variable data (as per each program update) goes here
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
102 ## The default is ${PROGNAME}
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
103 inststaticdir=@inststaticdir@
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
104
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
105 ## Static data (constant across program updates) goes here
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
106 ## The default is ${PROGNAME}-${version}
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
107 instvardir=@instvardir@
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
108
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
109 ## Like `prefix', but used for architecture-specific files.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
110 exec_prefix=@exec_prefix@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
111
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
112 ## Where to install XEmacs and other binaries that people will want to
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
113 ## run directly (like etags).
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
114 bindir=@bindir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
115
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
116 ## Where to install architecture-independent data files.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
117 ## ${lispdir} and ${etcdir} are subdirectories of this.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
118 datadir=@datadir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
119
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
120 ## Where to find XEmacs packages.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
121 pkgdir=@pkgdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
122
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
123 ## Where to install and expect the files that XEmacs modifies as it runs.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
124 ## These files are all architecture-independent. Right now, the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
125 ## only such data is the locking directory;
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
126 statedir=@statedir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
127
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
128 ## Where to install and expect executable files to be run by XEmacs
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
129 ## rather than directly by users, and other architecture-dependent data
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
130 ## ${archlibdir} is a subdirectory of this.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
131 libdir=@libdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
132
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
133 ## Where to install XEmacs's man pages, and what extension they should have.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
134 mandir=@mandir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
135 manext=.1
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
136
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
137 ## Where to install and expect the info files describing XEmacs. In the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
138 ## past, this defaulted to a subdirectory of ${prefix}/lib/xemacs, but
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
139 ## since there are now many packages documented with the texinfo
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
140 ## system, it is inappropriate to imply that it is part of XEmacs.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
141 infodir=@infodir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
142
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
143 ## Document me.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
144 ## See callproc.c for code which references this.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
145 infopath=@infopath@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
146
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
147 ## Where to find the source code. The source code for XEmacs's C kernel is
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
148 ## expected to be in ${srcdir}/src, and the source code for XEmacs's
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
149 ## utility programs is expected to be in ${srcdir}/lib-src. This is
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
150 ## set by the configure script's `--srcdir' option.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
151 srcdir=@srcdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
152
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
153 ## Where the build is done.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
154 blddir=@blddir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
155
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
156 ## ==================== XEmacs-specific directories ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
157
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
158 ## These variables hold the values XEmacs will actually use. They are
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
159 ## based on the values of the standard Make variables above.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
160
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
161 ## Where to install the lisp files distributed with
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
162 ## XEmacs. This includes the XEmacs version, so that the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
163 ## lisp files for different versions of XEmacs will install
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
164 ## themselves in separate directories.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
165 lispdir=@lispdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
166
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
167 ## Where to install the module files distributed with
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
168 ## XEmacs. This includes the XEmacs version, so that the
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
169 ## module files for different versions of XEmacs will install
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
170 ## themselves in separate directories.
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
171 moduledir=@moduledir@
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
172
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
173 ## Directory XEmacs should search for lisp files specific
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
174 ## to this site (i.e. customizations), before consulting
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
175 ## ${lispdir}.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
176 sitelispdir=@sitelispdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
177
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
178 ## Directory XEmacs should search for module files specific
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
179 ## to this site (i.e. customizations), before consulting
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
180 ## ${moduledir}.
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
181 sitemoduledir=@sitemoduledir@
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
182
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
183 ## Where XEmacs will search for its lisp files while
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
184 ## building. This is only used during the process of
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
185 ## compiling XEmacs, to help XEmacs find its lisp files
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
186 ## before they've been installed in their final location.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
187 ## It's usually identical to lispdir, except that the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
188 ## entry for the directory containing the installed lisp
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
189 ## files has been replaced with ../lisp. This should be a
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
190 ## colon-separated list of directories.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
191 buildlispdir=${srcdir}/lisp
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
192
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
193 ## Where to install the other architecture-independent
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
194 ## data files distributed with XEmacs (like the tutorial,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
195 ## the cookie recipes and the Zippy database). This path
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
196 ## usually contains the XEmacs version number, so the data
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
197 ## files for multiple versions of XEmacs may be installed
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
198 ## at once.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
199 etcdir=@etcdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
200
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
201 ## Where to put the DOC file.
420
41dbb7a9d5f2 Import from CVS: tag r21-2-18
cvs
parents: 412
diff changeset
202 docdir=@docdir@
41dbb7a9d5f2 Import from CVS: tag r21-2-18
cvs
parents: 412
diff changeset
203
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
204 ## Where to put executables to be run by XEmacs rather than
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
205 ## the user. This path usually includes the XEmacs version
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
206 ## and configuration name, so that multiple configurations
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
207 ## for multiple versions of XEmacs may be installed at
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
208 ## once.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
209 archlibdir=@archlibdir@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
210
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
211 ## ==================== Utility Programs for the Build ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
212
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
213 ## Allow the user to specify the install program.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
214 INSTALL = @install_pp@ @INSTALL@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
215 INSTALL_PROGRAM = @INSTALL_PROGRAM@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
216 INSTALL_DATA = @INSTALL_DATA@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
217
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
218 ## ============================= Targets ==============================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
219
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
220 ## Subdirectories to make recursively. `lisp' is not included
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
221 ## because the compiled lisp files are part of the distribution
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
222 ## and you cannot remake them without installing XEmacs first.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
223 MAKE_SUBDIR = @MAKE_SUBDIR@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
224
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
225 ## Subdirectories that can be made recursively.
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
226 SUBDIR = ${MAKE_SUBDIR} man
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
227
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
228 ## The makefiles of the directories in ${MAKE_SUBDIR}.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
229 SUBDIR_MAKEFILES = @SUBDIR_MAKEFILES@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
230
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
231 ## Subdirectories to `make install-arch-dep' recursively
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
232 INSTALL_ARCH_DEP_SUBDIR = @INSTALL_ARCH_DEP_SUBDIR@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
233
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
234 ## Subdirectories to install, and where they'll go.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
235 ## lib-src's makefile knows how to install it, so we don't do that here.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
236 ## When installing the info files, we need to do special things to
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
237 ## avoid nuking an existing dir file, so we don't do that here;
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
238 ## instead, we have written out explicit code in the `install' targets.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
239 COPYDIR = ${srcdir}/etc ${srcdir}/lisp
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
240 COPYDESTS = ${etcdir} ${lispdir}
398
74fd4e045ea6 Import from CVS: tag r21-2-29
cvs
parents: 396
diff changeset
241 GENERATED_HEADERS = src/paths.h src/Emacs.ad.h src/config.h lwlib/config.h src/sheap-adjust.h
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
242 GENERATED_LISP = lisp/finder-inf.el
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
243
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
244 all: ${PROGNAME} all-elc info
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
245
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
246 ${PROGNAME}: ${GENERATED_HEADERS} ${MAKE_SUBDIR} ${GENERATED_LISP}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
247
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
248 ## For performance and consistency, no built-in rules
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
249 .SUFFIXES:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
250
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
251 .NO_PARALLEL: ${GENERATED_HEADERS} ${MAKE_SUBDIR} dump-elcs
532
1cb1000b6813 [xemacs-hg @ 2001-05-12 11:31:37 by ben]
ben
parents: 458
diff changeset
252 .PHONY: ${SUBDIR} all beta all-elc all-elcs dump-elc dump-elcs finder
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
253
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
254 ## Convenience target for XEmacs beta testers
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 426
diff changeset
255 beta: clean all-elc finder info
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
256
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
257 ## Convenience target for XEmacs maintainers
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
258 ## This would run `make-xemacsdist' if I were really confident that everything
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
259 ## was turnkey.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
260 dist: all-elc info
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
261
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
262 ## Convenience target for XEmacs maintainers
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
263 ## Updates some rarely generated files:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
264 ## - configure from configure.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
265 ## - config.values.in from configure
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
266 ## - src/depend from src/*.[ch]
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
267 .PHONY: config configure depend
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
268 config: configure depend
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
269 configure: ${srcdir}/configure ${srcdir}/lib-src/config.values.in
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
270
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
271 ${srcdir}/configure : ${srcdir}/configure.in
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
272 cd ${srcdir} && autoconf
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
273
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
274 ${srcdir}/lib-src/config.values.in : ${srcdir}/configure
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
275 cd ${srcdir} && $(SHELL) lib-src/config.values.sh
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
276
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
277 depend ${srcdir}/src/depend:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
278 cd ./src && $(RECURSIVE_MAKE) depend
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
279
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
280 ## Build XEmacs and recompile out-of-date and missing .elc files along
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
281 ## the way.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
282 all-elc all-elcs: lib-src lwlib dump-elcs src
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
283 ${blddir}/src/${PROGNAME} -batch -vanilla \
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
284 -l update-elc-2.el -f batch-update-elc-2 lisp
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
285
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
286 ## Sub-target for all-elc.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
287 dump-elc dump-elcs: ${GENERATED_HEADERS} FRC.dump-elcs
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
288 cd ./src && $(RECURSIVE_MAKE) dump-elcs
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
289
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
290 finder: src
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
291 @echo "Building finder database ..."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
292 @(cd ./lisp; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
293 ${blddir}/src/${PROGNAME} -batch -vanilla \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
294 -eval '(setq finder-compile-keywords-quiet t)' \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
295 -l finder -f finder-compile-keywords )
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
296 @echo "Building finder database ...(done)"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
297
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
298 lisp/finder-inf.el:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
299 @echo "Building finder database ..."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
300 @(cd ./lisp; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
301 ${blddir}/src/${PROGNAME} -batch -vanilla \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
302 -eval '(setq finder-compile-keywords-quiet t)' \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
303 -l finder -f finder-compile-keywords )
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
304 @echo "Building finder database ...(done)"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
305
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
306 ## We have to force the building of Emacs.ad.h as well in order to get it
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
307 ## updated correctly when VPATH is being used. Since we use move-if-change,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
308 ## it will only actually change if the user modified ${etcdir}/Emacs.ad.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
309 src/Emacs.ad.h: ${srcdir}/etc/Emacs.ad
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
310 @echo "Producing \`src/Emacs.ad.h' from \`etc/Emacs.ad'."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
311 @$(RM) src/Emacs.ad.h
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
312 @(echo "/* Do not edit this file!" ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
313 echo " Automatically generated from ${srcdir}/etc/Emacs.ad" ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
314 echo " */" ; \
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
315 $(SHELL) ${srcdir}/lib-src/ad2c ${srcdir}/etc/Emacs.ad ) > \
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
316 src/Emacs.ad.h
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
317
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
318 src/sheap-adjust.h:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
319 @echo "Resetting \`src/sheap-adjust.h'."; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
320 (echo "/* Do not edit this file!" ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
321 echo " Automatically generated by XEmacs */" ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
322 echo "#define SHEAP_ADJUSTMENT 0") > $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
323
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
324 src: @SRC_SUBDIR_DEPS@ FRC.src
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
325 pkg-src/tree-x: pkg-src/FRC.tree-x
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
326 lib-src: FRC.lib-src
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
327 lwlib: FRC.lwlib
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
328 dynodump: FRC.dynodump
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
329 FRC.src FRC.lib-src FRC.lwlib FRC.dynodump pkg-src/FRC.tree-x:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
330 FRC.lisp.finder-inf.el:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
331
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
332 ${SUBDIR}: ${SUBDIR_MAKEFILES} ${GENERATED_HEADERS} FRC
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
333 cd ./$@ && $(RECURSIVE_MAKE) all
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
334
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
335 Makefile: ${srcdir}/Makefile.in config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
336 ./config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
337
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
338 src/Makefile: ${srcdir}/src/Makefile.in.in ${srcdir}/src/depend config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
339 ./config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
340
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
341 lib-src/Makefile: ${srcdir}/lib-src/Makefile.in.in config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
342 ./config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
343
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
344 lwlib/Makefile: ${srcdir}/lwlib/Makefile.in.in config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
345 ./config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
346
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
347 pkg-src/tree-x/Makefile: ${srcdir}/pkg-src/tree-x/Makefile.in.in config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
348 ./config.status
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
349
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
350 src/config.h: ${srcdir}/src/config.h.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
351 ./config.status && touch $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
352
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
353 src/paths.h: ${srcdir}/src/paths.h.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
354 ./config.status && touch $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
355
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
356 lwlib/config.h: ${srcdir}/lwlib/config.h.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
357 ./config.status && touch $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
358
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
359 ## ==================== Installation ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
360
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
361 ## If we let lib-src do its own installation, that means we
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
362 ## don't have to duplicate the list of utilities to install in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
363 ## this Makefile as well.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
364
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
365 ## On AIX, use tar xBf.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
366 ## On Xenix, use tar xpf.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
367
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
368 .PHONY: install-only install install-arch-dep install-arch-indep gzip.el mkdir
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
369 .PHONY: check-features
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
370
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
371 ## We delete each directory in ${COPYDESTS} before we copy into it;
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
372 ## that way, we can reinstall over directories that have been put in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
373 ## place with their files read-only (perhaps because they are checked
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
374 ## into RCS). In order to make this safe, we make sure that the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
375 ## source exists and is distinct from the destination.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
376
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
377 ## FSF doesn't depend on `all', but rather on ${MAKE_SUBDIR}, so that
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
378 ## they "won't ever modify src/paths.h". But that means you can't do
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
379 ## 'make install' right off the bat because src/paths.h won't exist.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
380 ## And, in XEmacs case, src/Emacs.ad.h won't exist either. I also
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
381 ## don't see the point in avoiding modifying paths.h. It creates an
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
382 ## inconsistency in the build process. So we go ahead and depend on
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
383 ## all. --cet
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
384
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
385 check-features: all
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
386 ${blddir}/src/${PROGNAME} -batch -l check-features.el
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
387
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
388 install-only: ${MAKE_SUBDIR} check-features install-arch-dep install-arch-indep
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
389
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
390 install: all check-features install-arch-dep install-arch-indep
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
391
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
392 install-arch-dep: mkdir
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
393 for subdir in ${INSTALL_ARCH_DEP_SUBDIR}; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
394 (cd ./$${subdir} && $(RECURSIVE_MAKE) install prefix=${prefix} \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
395 exec_prefix=${exec_prefix} bindir=${bindir} libdir=${libdir} \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
396 archlibdir=${archlibdir}) ; done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
397 if test "`(cd ${archlibdir} && $(pwd))`" != \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
398 "`(cd ./lib-src && $(pwd))`"; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
399 if test -f ../Installation; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
400 ${INSTALL_DATA} ../Installation ${archlibdir}/Installation; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
401 fi; \
422
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
402 ${INSTALL_DATA} lib-src/config.values ${docdir}/config.values; \
420
41dbb7a9d5f2 Import from CVS: tag r21-2-18
cvs
parents: 412
diff changeset
403 ${INSTALL_DATA} lib-src/DOC ${docdir}/DOC; \
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
404 for subdir in `find ${archlibdir} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
405 do (cd $${subdir} && $(RM) -r RCS CVS SCCS \#* *~) ; done ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
406 else true; fi
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
407 #ifdef PDUMP
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
408 ${INSTALL_DATA} src/${PROGNAME}.dmp ${bindir}/${PROGNAME}-${version}-`src/${PROGNAME} -sd`.dmp
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
409 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
410 #ifdef WIN32_NATIVE
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
411 ${INSTALL_PROGRAM} src/${PROGNAME} ${bindir}/${PROGNAME}
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
412 -chmod 0755 ${bindir}/${PROGNAME}
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
413 #else
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
414 ${INSTALL_PROGRAM} src/${PROGNAME} ${bindir}/${PROGNAME}-${version}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
415 -chmod 0755 ${bindir}/${PROGNAME}-${version}
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
416 # ifdef CYGWIN
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
417 cd ${bindir} && $(RM) ./${PROGNAME} && ${LN_S} ${PROGNAME}-${version}.exe ./${PROGNAME}
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
418 # else
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
419 cd ${bindir} && $(RM) ./${PROGNAME} && ${LN_S} ${PROGNAME}-${version} ./${PROGNAME}
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
420 # endif /* CYGWIN */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 430
diff changeset
421 #endif /* WIN32_NATIVE */
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
422 if test "${prefix}" != "${exec_prefix}"; then \
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
423 $(MAKEPATH) ${exec_prefix}/lib/${instvardir}; \
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
424 for dir in \
422
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
425 lib/${inststaticdir} \
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
426 lib/${instvardir}/etc \
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
427 lib/${instvardir}/info \
95016f13131a Import from CVS: tag r21-2-19
cvs
parents: 420
diff changeset
428 lib/${instvardir}/lisp; do \
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
429 if test ! -d ${exec_prefix}/$${dir}; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
430 $(LN_S) ${prefix}/$${dir} ${exec_prefix}/$${dir}; fi; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
431 done; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
432 fi
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
433
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
434 install-arch-indep: mkdir info
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
435 -@set ${COPYDESTS} ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
436 for dir in ${COPYDIR} ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
437 if test "`(cd $$1 && $(pwd))`" != \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
438 "`(cd $${dir} && $(pwd))`"; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
439 : do nothing - echo "rm -rf $$1" ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
440 fi ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
441 shift ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
442 done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
443 -set ${COPYDESTS} ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
444 for dir in ${COPYDESTS} ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
445 if test ! -d $${dir} ; then mkdir $${dir} ; fi ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
446 done ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
447 for dir in ${COPYDIR} ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
448 dest=$$1 ; shift ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
449 test -d $${dir} \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
450 -a "`(cd $${dir} && $(pwd))`" != \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
451 "`(cd $${dest} && $(pwd))`" \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
452 && (echo "Copying $${dir}..." ; \
430
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 426
diff changeset
453 (cd $${dir} && $(TAR) -cf - . ) | \
a5df635868b2 Import from CVS: tag r21-2-23
cvs
parents: 426
diff changeset
454 (cd $${dest} && umask 022 && $(TAR) -xf - );\
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
455 chmod 0755 $${dest}; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
456 for subdir in `find $${dest} -type d ! -name RCS ! -name SCCS ! -name CVS -print` ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
457 (cd $${subdir} && $(RM) -r RCS CVS SCCS \#* *~) ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
458 done) ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
459 done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
460 if test "`(cd ${srcdir}/info && $(pwd))`" != \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
461 "`(cd ${infodir} && $(pwd))`" && cd ${srcdir}/info; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
462 if test ! -f ${infodir}/dir -a -f dir ; then \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
463 ${INSTALL_DATA} ${srcdir}/info/dir ${infodir}/dir ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
464 fi ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
465 for file in *.info* ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
466 ${INSTALL_DATA} $${file} ${infodir}/$${file} ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
467 chmod 0644 ${infodir}/$${file}; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
468 done ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
469 fi
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
470 cd ${srcdir}/etc && \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
471 for page in xemacs etags ctags gnuserv gnuclient gnuattach gnudoit; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
472 ${INSTALL_DATA} ${srcdir}/etc/$${page}.1 ${mandir}/$${page}${manext} ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
473 chmod 0644 ${mandir}/$${page}${manext} ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
474 done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
475 @echo "If you would like to save approximately 2M of disk space, do"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
476 @echo "make gzip-el"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
477 @echo "or you may run "
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
478 @echo ${srcdir}/lib-src/gzip-el.sh lispdir " from the command line."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
479 @echo "Where lispdir is where the lisp files were installed, i.e.,"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
480 @echo "${lispdir}"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
481
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
482 gzip-el:
426
43177a4f3daf Import from CVS: tag r21-2-21
cvs
parents: 424
diff changeset
483 $(SHELL) ${srcdir}/lib-src/gzip-el.sh ${lispdir}
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
484
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
485 ## Build all the directories to install XEmacs in.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
486 ## Since we may be creating several layers of directories,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
487 ## (e.g. /usr/local/lib/${PROGNAME}-20.5/sparc-sun-solaris2.6), we use
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
488 ## make-path instead of mkdir. Not all mkdirs have the `-p' flag.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
489 mkdir: FRC.mkdir
444
576fb035e263 Import from CVS: tag r21-2-37
cvs
parents: 442
diff changeset
490 ${MAKEPATH} ${COPYDESTS} ${docdir} ${infodir} ${archlibdir} \
388
aabb7f5b1c81 Import from CVS: tag r21-2-9
cvs
parents: 382
diff changeset
491 ${mandir} ${bindir} ${datadir} ${libdir} ${pkgdir} \
598
6452bb72f5b9 [xemacs-hg @ 2001-06-01 05:07:19 by martinb]
martinb
parents: 532
diff changeset
492 #ifdef HAVE_SHLIB
6452bb72f5b9 [xemacs-hg @ 2001-06-01 05:07:19 by martinb]
martinb
parents: 532
diff changeset
493 ${moduledir} ${sitemoduledir} \
6452bb72f5b9 [xemacs-hg @ 2001-06-01 05:07:19 by martinb]
martinb
parents: 532
diff changeset
494 #endif
6452bb72f5b9 [xemacs-hg @ 2001-06-01 05:07:19 by martinb]
martinb
parents: 532
diff changeset
495 ${sitelispdir}
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
496
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
497 ## Delete all the installed files that the `install' target would
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
498 ## create (but not the noninstalled files such as `make all' would
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
499 ## create).
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
500
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
501 #### Don't delete the lisp and etc directories if they're in the source tree.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
502 #### This target has not been updated in sometime and until it is it
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
503 #### would be extremely dangerous for anyone to use it.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
504 ##uninstall:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
505 ## (cd ./lib-src; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
506 ## $(RECURSIVE_MAKE) uninstall \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
507 ## prefix=${prefix} exec_prefix=${exec_prefix} \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
508 ## bindir=${bindir} libdir=${libdir} archlibdir=${archlibdir})
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
509 ## for dir in ${lispdir} ${etcdir} ; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
510 ## case `(cd $${dir} ; $(pwd))` in \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
511 ## `(cd ${srcdir} ; $(pwd))`* ) ;; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
512 ## * ) $(RM) $${dir} ;; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
513 ## esac ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
514 ## case $${dir} in \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
515 ## ${datadir}/${PROGNAME}/${version}/* ) \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
516 ## $(RM) -r ${datadir}/${PROGNAME}/${version} \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
517 ## ;; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
518 ## esac ; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
519 ## done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
520 ## cd ${infodir} && $(RM) cl* ${PROGNAME}* forms* info* vip*
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
521 ## cd ${mandir} && $(RM) xemacs.1 etags.1 ctags.1 gnuserv.1
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
522 ## cd ${bindir} && $(RM) ${PROGNAME}-${version} ${PROGNAME}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
523
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
524
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
525 ## Some makes seem to remember that they've built something called FRC,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
526 ## so you can only use a given FRC once per makefile.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
527 FRC FRC.src.paths.h FRC.mkdir FRC.dump-elcs FRC.info:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
528 FRC.mostlyclean FRC.clean FRC.distclean FRC.realclean FRC.tags:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
529
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
530 ## ==================== Cleaning up and miscellanea ====================
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
531
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
532 .PHONY: mostlyclean clean distclean realclean extraclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
533
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
534 ## `mostlyclean'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
535 ## Like `clean', but may refrain from deleting a few files that people
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
536 ## normally don't want to recompile. For example, the `mostlyclean'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
537 ## target for GCC does not delete `libgcc.a', because recompiling it
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
538 ## is rarely necessary and takes a lot of time.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
539 mostlyclean: FRC.mostlyclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
540 for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
541
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
542 ## `clean'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
543 ## Delete all files from the current directory that are normally
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
544 ## created by building the program. Don't delete the files that
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
545 ## record the configuration. Also preserve files that could be made
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
546 ## by building, but normally aren't because the distribution comes
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
547 ## with them.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
548
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
549 ## Delete `.dvi' files here if they are not part of the distribution.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
550 clean: FRC.clean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
551 for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
552 $(RM) core
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
553
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
554 ## `distclean'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
555 ## Delete all files from the current directory that are created by
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
556 ## configuring or building the program. If you have unpacked the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
557 ## source and built the program without creating any other files,
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
558 ## `make distclean' should leave only the files that were in the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
559 ## distribution.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
560 top_distclean=\
394
7d59cb494b73 Import from CVS: tag r21-2-12
cvs
parents: 388
diff changeset
561 $(RM) config.status config.log confdefs.h config-tmp-* build-install Installation ; \
382
064ab7fed2e0 Import from CVS: tag r21-2-6
cvs
parents: 380
diff changeset
562 $(RM) core .sbinit lock/* GNUmakefile Makefile Makefile.in ; \
064ab7fed2e0 Import from CVS: tag r21-2-6
cvs
parents: 380
diff changeset
563 $(RM) lisp/finder-inf.el* Installation.el Installation.elc ; \
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents: 422
diff changeset
564 $(RM) -r site-packages xemacs-packages mule-packages site-lisp
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
565
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
566 distclean: FRC.distclean
598
6452bb72f5b9 [xemacs-hg @ 2001-06-01 05:07:19 by martinb]
martinb
parents: 532
diff changeset
567 for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
380
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
568 -${top_distclean}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
569
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
570 ## `realclean'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
571 ## Delete everything from the current directory that can be
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
572 ## reconstructed with this Makefile. This typically includes
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
573 ## everything deleted by distclean, plus more: C source files
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
574 ## produced by Bison, tags tables, info files, and so on.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
575
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
576 ## One exception, however: `make realclean' should not delete
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
577 ## `configure' even if `configure' can be remade using a rule in the
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
578 ## Makefile. More generally, `make realclean' should not delete
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
579 ## anything that needs to exist in order to run `configure' and then
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
580 ## begin to build the program.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
581 realclean: FRC.realclean
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
582 for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
583 -${top_distclean}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
584 $(RM) TAGS
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
585
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
586 ## This doesn't actually appear in the coding standards, but Karl
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
587 ## says GCC supports it, and that's where the configuration part of
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
588 ## the coding standards seem to come from. It's like distclean, but
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
589 ## it deletes backup and autosave files too.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
590 extraclean:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
591 for d in $(SUBDIR); do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
592 $(RM) *~ \#*
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
593 -${top_distclean}
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
594
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
595 ## Unlocking and relocking. The idea of these productions is to reduce
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
596 ## hassles when installing an incremental tar of XEmacs. Do `make unlock'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
597 ## before unlocking the file to take the write locks off all sources so
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
598 ## that tar xvof will overwrite them without fuss. Then do `make relock'
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
599 ## afterward so that VC mode will know which files should be checked in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
600 ## if you want to mung them.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
601
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
602 ## Note: it's no disaster if these productions miss a file or two; tar
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
603 ## and VC will swiftly let you know if this happens, and it is easily
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
604 ## corrected.
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
605 SOURCES = ChangeLog GETTING.GNU.SOFTWARE INSTALL Makefile.in PROBLEMS \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
606 README build-install.in configure make-dist move-if-change
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
607
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
608 .PHONY: unlock relock TAGS tags check dist info dvi mcs
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
609
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
610 unlock:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
611 chmod u+w $(SOURCES) cpp/*
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
612 -cd ./elisp && chmod u+w Makefile README *.texi
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
613 for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
614 cd ./lisp/term && chmod u+w README *.el
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
615 cd ./man && chmod u+w *texi* ChangeLog split-man
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
616 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
617
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
618 relock:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
619 chmod u-w $(SOURCES) cpp/*
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
620 -cd ./elisp && chmod u-w Makefile README *.texi
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
621 for d in src etc lib-src lisp; do (cd ./$$d && $(RECURSIVE_MAKE) $@); done
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
622 cd ./lisp/term && chmod u+w README *.el
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
623 cd ./man && chmod u+w *texi* ChangeLog split-man
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
624 cd ./lwlib && chmod u+w *.[ch] Makefile.in.in
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
625
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
626 PRUNE_VC = -name SCCS -prune -o -name RCS -prune -o -name CVS -prune -o
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
627 tagslisp = lisp
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
628 TAGS tags: FRC.tags
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
629 @echo "If you don't have a copy of etags around, then do 'make lib-src' first."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
630 $(RM) ${srcdir}/TAGS
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
631 @PATH=`$(pwd)`/lib-src:$$PATH HOME=/-=-; export PATH HOME; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
632 echo "Using etags from `which etags`."
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
633 PATH=`$(pwd)`/lib-src:$$PATH ; export PATH; cd ${srcdir} && \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
634 find src lwlib lib-src ${PRUNE_VC} -name '*.[ch]' -print | \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
635 xargs etags -a -r '/[ ]*DEF\(VAR\|INE\)_[A-Z_]+[ ]*([ ]*"\([^"]+\)"/\2/'; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
636 find ${tagslisp} ${PRUNE_VC} -name '*.el' ! -name 'auto-autoloads.el' -print | \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
637 xargs etags -a -l none -r "/^(def\\(var\\|un\\|alias\\|const\\|macro\\|subst\\|struct\\|face\\|group\\|custom\\|ine-\\(function\\|compiler-macro\\|[a-z-]+alias\\)\\)[ ]+'?\\([^ ]+\\)/\\3/"
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
638
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
639 check:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
640 cd ./src && $(RECURSIVE_MAKE) $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
641
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
642 info: FRC.info
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
643 cd ${srcdir}/man && $(RECURSIVE_MAKE) $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
644
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
645 dvi:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
646 cd ${srcdir}/man && $(RECURSIVE_MAKE) $@
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
647
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
648 ## Fix up version information in executables (Solaris-only)
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
649 mcs:
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
650 date=`LANG=C LC_ALL=C date -u '+%e %b %Y'`; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
651 ident="@(#)RELEASE VERSION XEmacs ${version} $${date}"; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
652 for f in `file lib-src/* src/${PROGNAME} | grep ELF | sed -e 's/:.*//'`; do \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
653 mcs -da "$${ident} `echo $${f} | sed 's/.*\///'`" $${f}; \
8626e4521993 Import from CVS: tag r21-2-5
cvs
parents:
diff changeset
654 done