Commit | Line | Data |
---|---|---|
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 |
5 | MAKE = make |
6 | # BSD doesn't have it as a default. | |
7 | ||
9e012fc3 JB |
8 | # ==================== Things `configure' might edit ==================== |
9 | ||
0c22fbca | 10 | CC=cc |
9e012fc3 JB |
11 | CONFIG_CFLAGS=-g |
12 | srcdir=. | |
13 | ||
14 | # ============================= Targets ============================== | |
0c22fbca | 15 | |
e5d77022 | 16 | CPP = $(CC) -E -Is -Im |
c8ff0e1b JA |
17 | #Note: an alternative is CPP = /lib/cpp |
18 | ||
5627d72e RS |
19 | # Just to avoid uncertainty. |
20 | SHELL = /bin/sh | |
21 | ||
9e012fc3 JB |
22 | CFLAGS=${CONFIG_CFLAGS} |
23 | ||
43a904c1 | 24 | all: doall |
c8ff0e1b | 25 | |
43a904c1 | 26 | doall: 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! | |
31 | distclean: | |
307436bb | 32 | -rm -f paths.h config.h emacs-* temacs emacs xmakefile core *.o |
c8ff0e1b JA |
33 | |
34 | clean: | |
307436bb | 35 | -rm -f temacs emacs prefix-args xmakefile* core \#* *.o |
c8ff0e1b | 36 | |
c3d80a47 ER |
37 | versionclean: |
38 | -rm -f emacs emacs-* ../etc/DOC* | |
39 | ||
9e012fc3 JB |
40 | extraclean: distclean |
41 | -rm -f *~ \#* m/*~ s/*~ | |
42 | ||
307436bb | 43 | emacs: doemacs |
75cf385a | 44 | @true |
c8ff0e1b | 45 | |
307436bb JB |
46 | doemacs: xmakefile |
47 | $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} emacs | |
c8ff0e1b | 48 | |
43a904c1 | 49 | temacs: dotemacs |
75cf385a | 50 | @true |
c8ff0e1b | 51 | |
43a904c1 | 52 | dotemacs: xmakefile |
82d3f743 | 53 | $(MAKE) CC='${CC}' -f xmakefile ${MFLAGS} temacs |
c8ff0e1b | 54 | |
a6af8696 ER |
55 | SOURCES = *.[ch] [sm]/* COPYING Makefile.in ymakefile \ |
56 | config.h.in README COPYING ChangeLog vms.pp-trans | |
57 | unlock: | |
58 | chmod u+w $(SOURCES) | |
59 | ||
60 | relock: | |
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 | 72 | xmakefile: 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 |
89 | tagsfiles = [a-z]*.h [a-z]*.c ../lisp/[a-z]*.el ../lisp/term/[a-z]*.el \ |
90 | ../external-lisp/*.el | |
91 | TAGS: $(tagsfiles) | |
92 | etags $(tagsfiles) | |
93 | tags: TAGS | |
94 | .PHONY: tags |