Mercurial > emacs
annotate msdos/mainmake.v2 @ 35935:6e47366adea1
*** empty log message ***
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Tue, 06 Feb 2001 17:15:39 +0000 |
parents | 0eab133958e6 |
children | 40a7360c9f8d |
rev | line source |
---|---|
15014 | 1 # Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*- |
14995 | 2 # |
3 # make all to compile and build Emacs. | |
4 # make install to install it. | |
5 # make TAGS to update tags tables. | |
6 # | |
7 # make clean or make mostlyclean | |
8 # Delete all files from the current directory that are normally | |
9 # created by building the program. Don't delete the files that | |
10 # record the configuration. Also preserve files that could be made | |
11 # by building, but normally aren't because the distribution comes | |
12 # with them. | |
13 # | |
14 # Delete `.dvi' files here if they are not part of the distribution. | |
15 # | |
16 # make distclean | |
17 # Delete all files from the current directory that are created by | |
18 # configuring or building the program. If you have unpacked the | |
19 # source and built the program without creating any other files, | |
20 # `make distclean' should leave only the files that were in the | |
21 # distribution. | |
22 # | |
23 # make realclean | |
24 # Delete everything from the current directory that can be | |
25 # reconstructed with this Makefile. This typically includes | |
26 # everything deleted by distclean, plus more: C source files | |
27 # produced by Bison, tags tables, info files, and so on. | |
28 # | |
29 # make extraclean | |
30 # Still more severe - delete backup and autosave files, too. | |
31 | |
23496
1518b5946f9f
Forcibly set SHELL and MAKESHELL to force Make to use
Eli Zaretskii <eliz@gnu.org>
parents:
21934
diff
changeset
|
32 # This gork is required for those who use a Unix-style shell, and |
1518b5946f9f
Forcibly set SHELL and MAKESHELL to force Make to use
Eli Zaretskii <eliz@gnu.org>
parents:
21934
diff
changeset
|
33 # have SHELL in the environment pointing to it. Here we force |
1518b5946f9f
Forcibly set SHELL and MAKESHELL to force Make to use
Eli Zaretskii <eliz@gnu.org>
parents:
21934
diff
changeset
|
34 # Make to use COMMAND.COM instead. This Makefile won't work otherwise. |
24908
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
35 # (The /xyzzy directory is used to minimize the chance that someone |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
36 # actually has such a directory with an incompatible command.com. We |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
37 # used to have /dos there, but some Windows installations have an old |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
38 # version of DOS stashed in that directory, and command.com from there |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
39 # won't run on Windows, complaining about "Incorrect DOS version". |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
40 # Make will look up PATH for the shell executable, so the directory name |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
41 # is not important.) |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
42 SHELL=/xyzzy/command |
075da7e5be80
(SHELL, MAKESHELL): Don't use /dos/command, it can
Eli Zaretskii <eliz@gnu.org>
parents:
24071
diff
changeset
|
43 MAKESHELL=/xyzzy/command |
23496
1518b5946f9f
Forcibly set SHELL and MAKESHELL to force Make to use
Eli Zaretskii <eliz@gnu.org>
parents:
21934
diff
changeset
|
44 |
14995 | 45 # Generate a full pathname of the top-level installation directory |
21483
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
46 top_srcdir := $(subst \,/,$(shell cd)) |
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
47 |
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
48 # Find out which version of Emacs this is. |
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
49 version := ${shell sed -n -e '/(defconst emacs-version/s/^[^"]*\("[^"]*"\).*/\1/p' lisp/version.el} |
14995 | 50 |
20282
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
51 all: lib-src src man |
14995 | 52 |
53 lib-src: FRC | |
54 cd lib-src | |
21483
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
55 $(MAKE) top_srcdir=${top_srcdir} version=${version} |
14995 | 56 cd .. |
57 | |
58 src: FRC | |
59 cd src | |
21483
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
60 $(MAKE) top_srcdir=${top_srcdir} |
30535
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
61 djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \ |
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
62 '/environment *TERM/s/^.*/set environment TERM internal/' \ |
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
63 '/x_error_quitter/s/^.*/set environment NAME root/' >gdb.sed |
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
64 sed -f gdb.sed _gdbinit >gdb.tmp |
30599
296c06699a96
(src): Put gdb.tmp after -a, since -a requires an argument.
Eli Zaretskii <eliz@gnu.org>
parents:
30535
diff
changeset
|
65 djecho -a gdb.tmp -s 'set environment USER root' \ |
296c06699a96
(src): Put gdb.tmp after -a, since -a requires an argument.
Eli Zaretskii <eliz@gnu.org>
parents:
30535
diff
changeset
|
66 'set environment EMACSPATH $(top_srcdir)/bin' \ |
296c06699a96
(src): Put gdb.tmp after -a, since -a requires an argument.
Eli Zaretskii <eliz@gnu.org>
parents:
30535
diff
changeset
|
67 'set environment SHELL $(subst \,/,$(COMSPEC))' \ |
296c06699a96
(src): Put gdb.tmp after -a, since -a requires an argument.
Eli Zaretskii <eliz@gnu.org>
parents:
30535
diff
changeset
|
68 'set environment PATH $(subst \,/,$(PATH))' |
14995 | 69 update gdb.tmp gdb.ini |
15024
46fab7ac485b
(src): Create a file with sed commands instead of using
Richard M. Stallman <rms@gnu.org>
parents:
15014
diff
changeset
|
70 rm -f gdb.tmp gdb.sed |
14995 | 71 cd .. |
24019
4946582b4411
(src): Build files in leim if leim/Makefile exists.
Eli Zaretskii <eliz@gnu.org>
parents:
23662
diff
changeset
|
72 if exist leim\Makefile redir $(MAKE) -C leim top_srcdir=${top_srcdir} |
14995 | 73 |
20282
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
74 man: FRC |
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
75 cd man |
21483
c6d7001a262c
Determine emacs-version from lisp/version.el. Pass it to
Eli Zaretskii <eliz@gnu.org>
parents:
20282
diff
changeset
|
76 $(MAKE) top_srcdir=${top_srcdir} |
20282
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
77 cd .. |
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
78 |
14995 | 79 install: all |
20282
6de74098af01
(man): New target to build the manual.
Eli Zaretskii <eliz@gnu.org>
parents:
18768
diff
changeset
|
80 if not exist bin\nul md bin |
14995 | 81 cd lib-src |
30535
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
82 command.com /c >/dev/null for %p in (hexl etags ctags b2m ebrowse) do\ |
442861d7c78a
(src): Make the rule faster by using a single djecho
Eli Zaretskii <eliz@gnu.org>
parents:
28768
diff
changeset
|
83 if exist %p.exe mv -f %p.exe ../bin |
24071
8db408246555
(install): Use update instead of sed to install fns.el.
Eli Zaretskii <eliz@gnu.org>
parents:
24047
diff
changeset
|
84 if exist fns.el update fns.el ../bin/fns.el |
14995 | 85 cd .. |
86 cd src | |
87 stubify emacs | |
88 stubedit emacs.exe minstack=512k | |
89 mv -f emacs.exe ../bin/ | |
90 cd .. | |
91 | |
92 FRC: | |
93 | |
31054
0eab133958e6
(TAGS): Don't use [a-zA-Z]*, as it causes wildcard
Eli Zaretskii <eliz@gnu.org>
parents:
30599
diff
changeset
|
94 # We cannot use [a-zA-Z]* like the mainline distribution does, because |
0eab133958e6
(TAGS): Don't use [a-zA-Z]*, as it causes wildcard
Eli Zaretskii <eliz@gnu.org>
parents:
30599
diff
changeset
|
95 # that causes all file names to be returned in upper-case on DOS... |
15781
5cd40832a444
(TAGS): Make sure bin/etags.exe is current. Make
Richard M. Stallman <rms@gnu.org>
parents:
15024
diff
changeset
|
96 TAGS tags: lib-src FRC |
5cd40832a444
(TAGS): Make sure bin/etags.exe is current. Make
Richard M. Stallman <rms@gnu.org>
parents:
15024
diff
changeset
|
97 cd lib-src |
5cd40832a444
(TAGS): Make sure bin/etags.exe is current. Make
Richard M. Stallman <rms@gnu.org>
parents:
15024
diff
changeset
|
98 if exist etags.exe mv -f etags.exe ../bin |
5cd40832a444
(TAGS): Make sure bin/etags.exe is current. Make
Richard M. Stallman <rms@gnu.org>
parents:
15024
diff
changeset
|
99 cd .. |
14995 | 100 cd lisp |
31054
0eab133958e6
(TAGS): Don't use [a-zA-Z]*, as it causes wildcard
Eli Zaretskii <eliz@gnu.org>
parents:
30599
diff
changeset
|
101 ../bin/etags .../*.el |
14995 | 102 cd .. |
103 cd src | |
104 ../bin/etags --include=../lisp/TAGS \ | |
105 '--regex=/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' *.c *.h s/msdos.h m/intel386.h | |
106 cd .. | |
107 ./bin/etags --include=src/TAGS | |
108 | |
109 check: | |
110 @echo "We don't have any tests for GNU Emacs yet." | |
111 | |
112 clean: | |
113 cd lib-src | |
114 $(MAKE) clean | |
115 cd .. | |
116 cd src | |
117 $(MAKE) clean | |
118 cd .. | |
119 cd oldxmenu | |
120 -$(MAKE) clean | |
121 cd .. | |
24019
4946582b4411
(src): Build files in leim if leim/Makefile exists.
Eli Zaretskii <eliz@gnu.org>
parents:
23662
diff
changeset
|
122 cd leim |
4946582b4411
(src): Build files in leim if leim/Makefile exists.
Eli Zaretskii <eliz@gnu.org>
parents:
23662
diff
changeset
|
123 if exist Makefile redir $(MAKE) clean |
4946582b4411
(src): Build files in leim if leim/Makefile exists.
Eli Zaretskii <eliz@gnu.org>
parents:
23662
diff
changeset
|
124 cd .. |