(struct frame): New field face_alist.
[bpt/emacs.git] / src / Makefile.in
CommitLineData
ec558adc
JB
1# DIST: This is the distribution Makefile for Emacs. configure can
2# DIST: make most of the changes to this file you might want, so try
3# DIST: that first.
4
4ddcbb51
RS
5MAKE = make
6# BSD doesn't have it as a default.
7
9e012fc3
JB
8# ==================== Things `configure' might edit ====================
9
0c22fbca 10CC=cc
9e012fc3
JB
11CONFIG_CFLAGS=-g
12srcdir=.
13
14# ============================= Targets ==============================
0c22fbca 15
e5d77022 16CPP = $(CC) -E -Is -Im
c8ff0e1b
JA
17#Note: an alternative is CPP = /lib/cpp
18
5627d72e
RS
19# Just to avoid uncertainty.
20SHELL = /bin/sh
21
9e012fc3
JB
22CFLAGS=${CONFIG_CFLAGS}
23
43a904c1 24all: doall
c8ff0e1b 25
43a904c1 26doall: xmakefile
65583c24 27 $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} all
c8ff0e1b
JA
28
29#This is used in making a distribution.
30#Do not use it on development directories!
31distclean:
307436bb 32 -rm -f paths.h config.h emacs-* temacs emacs xmakefile core *.o
c8ff0e1b
JA
33
34clean:
307436bb 35 -rm -f temacs emacs prefix-args xmakefile* core \#* *.o
c8ff0e1b 36
c3d80a47
ER
37versionclean:
38 -rm -f emacs emacs-* ../etc/DOC*
39
9e012fc3
JB
40extraclean: distclean
41 -rm -f *~ \#* m/*~ s/*~
42
307436bb 43emacs: doemacs
75cf385a 44 @true
c8ff0e1b 45
307436bb
JB
46doemacs: xmakefile
47 $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} emacs
c8ff0e1b 48
43a904c1 49temacs: dotemacs
75cf385a 50 @true
c8ff0e1b 51
43a904c1 52dotemacs: xmakefile
82d3f743 53 $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} temacs
c8ff0e1b 54
a6af8696
ER
55SOURCES = *.[ch] [sm]/* COPYING Makefile.in ymakefile \
56 config.h.in README COPYING ChangeLog vms.pp-trans
57unlock:
58 chmod u+w $(SOURCES)
59
60relock:
61 chmod -w $(SOURCES)
62 chmod +w paths.h
63
dbc4e1c1
JB
64### Some makes, like Ultrix's make, complain if you put a comment in
65### the middle of a rule's command list! Dummies.
66
67### The flags for optimization and debugging depend on the
68### system, so take an ordinary CFLAGS value and choose the
69### appropriate CPP symbols to use in ymakefile.
70### If you have a problem with cc -E here, changing
71### the definition of CPP above may fix it.
c8ff0e1b 72xmakefile: ymakefile config.h
e5d77022 73 -rm -f xmakefile xmakefile.new junk.c junk.cpp
c8ff0e1b 74 cp ymakefile junk.c
0c22fbca
JB
75 $(CPP) junk.c > junk.cpp \
76 -DC_SWITCH_SITE="`echo ${CFLAGS}' ' \
77 | sed -e 's/-g /C_DEBUG_SWITCH /' \
20f0f7a6 78 -e 's/-O /C_OPTIMIZE_SWITCH /'`"
e5d77022
JB
79 < junk.cpp \
80 sed -e 's/^#.*//' \
81 -e 's/^[ \f\t][ \f\t]*$$//' \
82 -e 's/^ / /' \
83 | sed -n -e '/^..*$$/p' \
84 > xmakefile.new
85 mv -f xmakefile.new xmakefile
9e012fc3 86 chmod 444 xmakefile
0c22fbca 87 rm -f junk.c junk.cpp
c8ff0e1b 88
ac21ec40
RM
89tagsfiles = [a-z]*.h [a-z]*.c ../lisp/[a-z]*.el ../lisp/term/[a-z]*.el \
90 ../external-lisp/*.el
91TAGS: $(tagsfiles)
92 etags $(tagsfiles)
93tags: TAGS
94.PHONY: tags