aboutsummaryrefslogtreecommitdiffstats
path: root/lib-src
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src')
-rw-r--r--lib-src/.gitignore1
-rw-r--r--lib-src/ChangeLog76
-rw-r--r--lib-src/emacsclient.c127
-rw-r--r--lib-src/etags.c19
-rw-r--r--lib-src/makefile.w32-in48
5 files changed, 203 insertions, 68 deletions
diff --git a/lib-src/.gitignore b/lib-src/.gitignore
index faf263e740d..157ce12c972 100644
--- a/lib-src/.gitignore
+++ b/lib-src/.gitignore
@@ -24,3 +24,4 @@ makefile
24blessmail 24blessmail
25*-spd 25*-spd
26*.pdb 26*.pdb
27stamp_BLD
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 8de03606271..76a0dcf1b9e 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,48 @@
12006-12-28 Francesco Potort,Al(B <pot@gnu.org>
2
3 * etags.c (readline): When creating a relative file name from a
4 #line directive, leave the file name alone. The previous
5 behaviour was to make it relative to the tags file directory,
6 under the hypothesis that the #line directive file name was
7 relative to the directory of the tagged file. That hypothesis is
8 wrong with Cpp and Lex.
9 (Makefile_targets): Do not include spaces in tag names.
10
112006-12-22 Eli Zaretskii <eliz@gnu.org>
12
13 * makefile.w32-in (make-docfile, ctags, etags, ebrowse, hexl)
14 (movemail, fakemail, sorted-doc, digest-doc, emacsclient)
15 (test-distrib, $(DOC), all): depend on stamp_BLD instead of $(BLD).
16 ($(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O))
17 ($(BLD)/sorted-doc.$(O) $(BLD)/digest-doc.$(O))
18 ($(BLD)/test-distrib.$(O) $(GETOPTOBJS) $(MOVEMAILOBJS))
19 ($(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O))
20 ($(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O)): Depend on stamp_BLD.
21 (clean): Delete stamp_BLD.
22
232006-12-20 Francesco Potort,Al(B <pot@gnu.org>
24
25 * etags.c (C_entries): DEFUN names were longer by one: corrected.
26
272006-12-18 Juanma Barranquero <lekktu@gmail.com>
28
29 * emacsclient.c [WINDOWSNT] (set_fg, get_wc): New variables.
30 [WINDOWSNT] (w32_find_emacs_process, w32_give_focus): New functions.
31 (main) [WINDOWSNT]: Remove code to release the focus; call
32 w32_give_focus instead.
33
342006-12-15 Juanma Barranquero <lekktu@gmail.com>
35
36 * emacsclient.c (w32_execvp): New function; wrapper for `execvp'.
37 (execvp) [WINDOWSNT]: Redefine to `w32_execvp'.
38 (fail): Remove Windows-specific fix (subsumed into w32_execvp).
39 Suggestions and comment by Eli Zaretskii.
40
412006-12-06 Christoph Conrad <christoph.conrad@gmx.de>
42
43 * makefile.w32-in ($(BLD)/emacsclient.exe, $(BLD)/emacsclientw.exe):
44 Use $(USER32) for compatibility with Visual Studio .NET 2003.
45
12006-11-30 Juanma Barranquero <lekktu@gmail.com> 462006-11-30 Juanma Barranquero <lekktu@gmail.com>
2 47
3 * emacsclient.c (emacs_pid): New variable. 48 * emacsclient.c (emacs_pid): New variable.
@@ -14,11 +59,11 @@
14 (set_tcp_socket): Make the message for non-local connections 59 (set_tcp_socket): Make the message for non-local connections
15 informational rather than an error. 60 informational rather than an error.
16 61
172006-11-28 Kevin Ryde <user42@zip.com.au> (tiny change) 622006-11-28 Kevin Ryde <user42@zip.com.au>
18 63
19 * etags.c (readline): Check for double quote after #line. 64 * etags.c (readline): Check for double quote after #line.
20 65
212006-11-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> (tiny change) 662006-11-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
22 67
23 * etags.c (readline): sscanf could in principle return 2. 68 * etags.c (readline): sscanf could in principle return 2.
24 69
@@ -50,8 +95,8 @@
50 95
512006-11-24 Michael Mauger <mmaug@yahoo.com> 962006-11-24 Michael Mauger <mmaug@yahoo.com>
52 97
53 * emacsclient.c (file_name_absolute_p) [WINDOWSNT]: Support 98 * emacsclient.c (file_name_absolute_p) [WINDOWSNT]: Support absolute
54 absolute file names with forward slashes. 99 file names with forward slashes.
55 100
562006-11-23 Juanma Barranquero <lekktu@gmail.com> 1012006-11-23 Juanma Barranquero <lekktu@gmail.com>
57 102
@@ -442,10 +487,9 @@
442 487
4432005-07-13 Ken Raeburn <raeburn@gnu.org> 4882005-07-13 Ken Raeburn <raeburn@gnu.org>
444 489
445 * pop.c: Don't include des.h (or variants thereof); krb.h will do 490 * pop.c: Don't include des.h (or variants thereof); krb.h will do it.
446 it. 491 (sendline): Add the \r\n to the line in a temporary buffer, and write
447 (sendline): Add the \r\n to the line in a temporary buffer, and 492 it all at once.
448 write it all at once.
449 493
4502005-07-04 Lute Kamstra <lute@gnu.org> 4942005-07-04 Lute Kamstra <lute@gnu.org>
451 495
@@ -485,10 +529,9 @@
485 529
4862005-02-04 Andreas Schwab <schwab@suse.de> 5302005-02-04 Andreas Schwab <schwab@suse.de>
487 531
488 * movemail.c (fatal): Accept third parameter and pass down to 532 * movemail.c (fatal): Accept third parameter and pass down to error.
489 error. 533 (pfatal_with_name): Pass error string as format parameter instead of
490 (pfatal_with_name): Pass error string as format parameter instead 534 as part of format string.
491 of as part of format string.
492 (pfatal_and_delete): Likewise. 535 (pfatal_and_delete): Likewise.
493 (main): Adjust call to fatal. 536 (main): Adjust call to fatal.
494 (xmalloc): Likewise. 537 (xmalloc): Likewise.
@@ -499,8 +542,7 @@
499 542
5002004-12-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> 5432004-12-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
501 544
502 * make-docfile.c: Include stdlib.h even if WINDOWSNT is not 545 * make-docfile.c: Include stdlib.h even if WINDOWSNT is not defined.
503 defined.
504 546
5052004-12-15 Andreas Schwab <schwab@suse.de> 5472004-12-15 Andreas Schwab <schwab@suse.de>
506 548
@@ -566,8 +608,7 @@
566 608
5672004-05-10 Thien-Thi Nguyen <ttn@gnu.org> 6092004-05-10 Thien-Thi Nguyen <ttn@gnu.org>
568 610
569 * test-distrib.c (main): For failing cases, exit with 611 * test-distrib.c (main): For failing cases, exit with `EXIT_FAILURE'.
570 `EXIT_FAILURE'.
571 612
5722004-05-08 Jason Rumney <jasonr@gnu.org> 6132004-05-08 Jason Rumney <jasonr@gnu.org>
573 614
@@ -740,8 +781,7 @@
740 781
7412003-04-27 Oliver Scholz <alkibiades@gmx.de> 7822003-04-27 Oliver Scholz <alkibiades@gmx.de>
742 783
743 * update-game-score.c (read_scores): Fix corruption of scores on 784 * update-game-score.c (read_scores): Fix corruption of scores on read.
744 read.
745 785
7462003-04-12 Stefan Monnier <monnier@cs.yale.edu> 7862003-04-12 Stefan Monnier <monnier@cs.yale.edu>
747 787
diff --git a/lib-src/emacsclient.c b/lib-src/emacsclient.c
index 64a0e00d5b9..f765f02b426 100644
--- a/lib-src/emacsclient.c
+++ b/lib-src/emacsclient.c
@@ -301,16 +301,15 @@ get_current_dir_name ()
301/* Message functions. */ 301/* Message functions. */
302 302
303#ifdef WINDOWSNT 303#ifdef WINDOWSNT
304/* I first tried to check for STDOUT. The check did not work,
305 I get a valid handle also in nonconsole apps.
306 Instead I test for console title, which seems to work. */
307int 304int
308w32_window_app() 305w32_window_app ()
309{ 306{
310 static int window_app = -1; 307 static int window_app = -1;
311 char szTitle[MAX_PATH]; 308 char szTitle[MAX_PATH];
312 309
313 if (window_app < 0) 310 if (window_app < 0)
311 /* Checking for STDOUT does not work; it's a valid handle also in
312 nonconsole apps. Testing for the console title seems to work. */
314 window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0); 313 window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0);
315 314
316 return window_app; 315 return window_app;
@@ -488,9 +487,7 @@ fail (void)
488 if (alternate_editor) 487 if (alternate_editor)
489 { 488 {
490 int i = optind - 1; 489 int i = optind - 1;
491#ifdef WINDOWSNT 490
492 main_argv[i] = (char *)alternate_editor;
493#endif
494 execvp (alternate_editor, main_argv + i); 491 execvp (alternate_editor, main_argv + i);
495 message (TRUE, "%s: error executing alternate editor \"%s\"\n", 492 message (TRUE, "%s: error executing alternate editor \"%s\"\n",
496 progname, alternate_editor); 493 progname, alternate_editor);
@@ -683,7 +680,7 @@ file_name_absolute_p (filename)
683} 680}
684 681
685#ifdef WINDOWSNT 682#ifdef WINDOWSNT
686/* Wrapper to make WSACleanup a cdecl, as required by atexit(). */ 683/* Wrapper to make WSACleanup a cdecl, as required by atexit. */
687void 684void
688__cdecl close_winsock () 685__cdecl close_winsock ()
689{ 686{
@@ -707,10 +704,47 @@ initialize_sockets ()
707#endif /* WINDOWSNT */ 704#endif /* WINDOWSNT */
708 705
709 706
707#ifdef WINDOWSNT
708
709/*
710 execvp wrapper for Windows. Quotes arguments with embedded spaces.
711
712 This is necessary due to the broken implementation of exec* routines in
713 the Microsoft libraries: they concatenate the arguments together without
714 quoting special characters, and pass the result to CreateProcess, with
715 predictably bad results. By contrast, Posix execvp passes the arguments
716 directly into the argv array of the child process.
717*/
718int
719w32_execvp (path, argv)
720 char *path;
721 char **argv;
722{
723 int i;
724
725 /* Required to allow a .BAT script as alternate editor. */
726 argv[0] = (char *) alternate_editor;
727
728 for (i = 0; argv[i]; i++)
729 if (strchr (argv[i], ' '))
730 {
731 char *quoted = alloca (strlen (argv[i]) + 3);
732 sprintf (quoted, "\"%s\"", argv[i]);
733 argv[i] = quoted;
734 }
735
736 return execvp (path, argv);
737}
738
739#undef execvp
740#define execvp w32_execvp
741
742#endif /* WINDOWSNT */
743
710/* 744/*
711 * Read the information needed to set up a TCP comm channel with 745 * Read the information needed to set up a TCP comm channel with
712 * the Emacs server: host, port, pid and authentication string. 746 * the Emacs server: host, port, pid and authentication string.
713*/ 747 */
714int 748int
715get_server_config (server, authentication) 749get_server_config (server, authentication)
716 struct sockaddr_in *server; 750 struct sockaddr_in *server;
@@ -1145,6 +1179,62 @@ set_socket ()
1145 exit (EXIT_FAILURE); 1179 exit (EXIT_FAILURE);
1146} 1180}
1147 1181
1182#ifdef WINDOWSNT
1183FARPROC set_fg; /* Pointer to AllowSetForegroundWindow. */
1184FARPROC get_wc; /* Pointer to RealGetWindowClassA. */
1185
1186BOOL CALLBACK
1187w32_find_emacs_process (hWnd, lParam)
1188 HWND hWnd;
1189 LPARAM lParam;
1190{
1191 DWORD pid;
1192 char class[6];
1193
1194 /* Reject any window not of class "Emacs". */
1195 if (! get_wc (hWnd, class, sizeof (class))
1196 || strcmp (class, "Emacs"))
1197 return TRUE;
1198
1199 /* We only need the process id, not the thread id. */
1200 (void) GetWindowThreadProcessId (hWnd, &pid);
1201
1202 /* Not the one we're looking for. */
1203 if (pid != (DWORD) emacs_pid) return TRUE;
1204
1205 /* OK, let's raise it. */
1206 set_fg (emacs_pid);
1207
1208 /* Stop enumeration. */
1209 return FALSE;
1210}
1211
1212/*
1213 * Search for a window of class "Emacs" and owned by a process with
1214 * process id = emacs_pid. If found, allow it to grab the focus.
1215 */
1216void
1217w32_give_focus ()
1218{
1219 HMODULE hUser32;
1220
1221 /* It should'nt happen when dealing with TCP sockets. */
1222 if (!emacs_pid) return;
1223
1224 if (!(hUser32 = LoadLibrary ("user32.dll"))) return;
1225
1226 /* Modern Windows restrict which processes can set the foreground window.
1227 emacsclient can allow Emacs to grab the focus by calling the function
1228 AllowSetForegroundWindow. Unfortunately, older Windows (W95, W98 and
1229 NT) lack this function, so we have to check its availability. */
1230 if ((set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
1231 && (get_wc = GetProcAddress (hUser32, "RealGetWindowClassA")))
1232 EnumWindows (w32_find_emacs_process, (LPARAM) 0);
1233
1234 FreeLibrary (hUser32);
1235}
1236#endif
1237
1148int 1238int
1149main (argc, argv) 1239main (argc, argv)
1150 int argc; 1240 int argc;
@@ -1184,24 +1274,7 @@ main (argc, argv)
1184 } 1274 }
1185 1275
1186#ifdef WINDOWSNT 1276#ifdef WINDOWSNT
1187 /* 1277 w32_give_focus ();
1188 Modern Windows restrict which processes can set the foreground window.
1189 emacsclient can allow Emacs to grab the focus by calling the function
1190 AllowSetForegroundWindow(). Unfortunately, older Windows (W95, W98
1191 and NT) lack this function, so we have to check its availability.
1192 */
1193 if (emacs_pid)
1194 {
1195 HMODULE hUser32;
1196
1197 if (hUser32 = LoadLibrary ("user32.dll"))
1198 {
1199 FARPROC set_fg;
1200 if (set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
1201 set_fg (emacs_pid);
1202 FreeLibrary (hUser32);
1203 }
1204 }
1205#endif 1278#endif
1206 1279
1207 /* First of all, send our version number for verification. */ 1280 /* First of all, send our version number for verification. */
diff --git a/lib-src/etags.c b/lib-src/etags.c
index 26dac368b4d..c4f7fdc4d69 100644
--- a/lib-src/etags.c
+++ b/lib-src/etags.c
@@ -41,7 +41,7 @@
41 * configuration file containing regexp definitions for etags. 41 * configuration file containing regexp definitions for etags.
42 */ 42 */
43 43
44char pot_etags_version[] = "@(#) pot revision number is $Revision: 3.61 $"; 44char pot_etags_version[] = "@(#) pot revision number is 17.25";
45 45
46#define TRUE 1 46#define TRUE 1
47#define FALSE 0 47#define FALSE 0
@@ -3163,7 +3163,7 @@ static void
3163make_C_tag (isfun) 3163make_C_tag (isfun)
3164 bool isfun; 3164 bool isfun;
3165{ 3165{
3166 /* This function should never be called when token.valid is FALSE, but 3166 /* This function is never called when token.valid is FALSE, but
3167 we must protect against invalid input or internal errors. */ 3167 we must protect against invalid input or internal errors. */
3168 if (!DEBUG && !token.valid) 3168 if (!DEBUG && !token.valid)
3169 return; 3169 return;
@@ -3493,7 +3493,6 @@ C_entries (c_ext, inf)
3493 off += 1; 3493 off += 1;
3494 len -= 1; 3494 len -= 1;
3495 } 3495 }
3496 len = toklen;
3497 linebuffer_setlen (&token_name, len); 3496 linebuffer_setlen (&token_name, len);
3498 strncpy (token_name.buffer, 3497 strncpy (token_name.buffer,
3499 newlb.buffer + off, len); 3498 newlb.buffer + off, len);
@@ -4687,8 +4686,16 @@ Makefile_targets (inf)
4687 while (*bp != '\0' && *bp != '=' && *bp != ':') 4686 while (*bp != '\0' && *bp != '=' && *bp != ':')
4688 bp++; 4687 bp++;
4689 if (*bp == ':' || (globals && *bp == '=')) 4688 if (*bp == ':' || (globals && *bp == '='))
4690 make_tag (lb.buffer, bp - lb.buffer, TRUE, 4689 {
4691 lb.buffer, bp - lb.buffer + 1, lineno, linecharno); 4690 /* We should detect if there is more than one tag, but we do not.
4691 We just skip initial and final spaces. */
4692 char * namestart = skip_spaces (lb.buffer);
4693 while (--bp > namestart)
4694 if (!notinname (*bp))
4695 break;
4696 make_tag (namestart, bp - namestart + 1, TRUE,
4697 lb.buffer, bp - lb.buffer + 2, lineno, linecharno);
4698 }
4692 } 4699 }
4693} 4700}
4694 4701
@@ -6278,7 +6285,7 @@ readline (lbp, stream)
6278 name = lbp->buffer + start; 6285 name = lbp->buffer + start;
6279 *endp = '\0'; 6286 *endp = '\0';
6280 canonicalize_filename (name); /* for DOS */ 6287 canonicalize_filename (name); /* for DOS */
6281 taggedabsname = absolute_filename (name, curfdp->infabsdir); 6288 taggedabsname = absolute_filename (name, tagfiledir);
6282 if (filename_is_absolute (name) 6289 if (filename_is_absolute (name)
6283 || filename_is_absolute (curfdp->infname)) 6290 || filename_is_absolute (curfdp->infname))
6284 taggedfname = savestr (taggedabsname); 6291 taggedfname = savestr (taggedabsname);
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in
index 7f3fc12ac1e..bc998e710d7 100644
--- a/lib-src/makefile.w32-in
+++ b/lib-src/makefile.w32-in
@@ -24,7 +24,7 @@ ALL = make-docfile hexl ctags etags movemail ebrowse sorted-doc digest-doc emacs
24 24
25.PHONY: $(ALL) 25.PHONY: $(ALL)
26 26
27VERSION = 22.0.91 27VERSION = 22.0.92
28 28
29LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ 29LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
30 -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \ 30 -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
@@ -45,18 +45,18 @@ $(BLD)/digest-doc.exe: $(BLD)/digest-doc.$(O)
45$(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O) 45$(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O)
46 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS) 46 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS)
47 47
48make-docfile: $(BLD) $(BLD)/make-docfile.exe 48make-docfile: stamp_BLD $(BLD)/make-docfile.exe
49ctags: $(BLD) $(BLD)/ctags.exe 49ctags: stamp_BLD $(BLD)/ctags.exe
50etags: $(BLD) $(BLD)/etags.exe 50etags: stamp_BLD $(BLD)/etags.exe
51ebrowse: $(BLD) $(BLD)/ebrowse.exe 51ebrowse: stamp_BLD $(BLD)/ebrowse.exe
52hexl: $(BLD) $(BLD)/hexl.exe 52hexl: stamp_BLD $(BLD)/hexl.exe
53movemail: $(BLD) $(BLD)/movemail.exe 53movemail: stamp_BLD $(BLD)/movemail.exe
54fakemail: $(BLD) $(BLD)/fakemail.exe 54fakemail: stamp_BLD $(BLD)/fakemail.exe
55sorted-doc: $(BLD) $(BLD)/sorted-doc.exe 55sorted-doc: stamp_BLD $(BLD)/sorted-doc.exe
56digest-doc: $(BLD) $(BLD)/digest-doc.exe 56digest-doc: stamp_BLD $(BLD)/digest-doc.exe
57emacsclient: $(BLD) $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe 57emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
58 58
59test-distrib: $(BLD) $(BLD)/test-distrib.exe 59test-distrib: stamp_BLD $(BLD)/test-distrib.exe
60 "$(BLD)/test-distrib.exe" "$(SRC)/testfile" 60 "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
61 61
62GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O) 62GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O)
@@ -82,11 +82,11 @@ $(TRES): ../nt/emacs.rc
82 82
83$(BLD)/emacsclient.exe: $(ECLIENTOBJS) 83$(BLD)/emacsclient.exe: $(ECLIENTOBJS)
84# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib 84# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
85 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS) 85 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS)
86 86
87$(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(TRES) 87$(BLD)/emacsclientw.exe: $(ECLIENTOBJS) $(TRES)
88# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib 88# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
89 $(LINK) $(LINK_OUT)$@ $(TRES) -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS) 89 $(LINK) $(LINK_OUT)$@ $(TRES) -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS)
90 90
91# emacsclient.$(O) depends on makefile.w32-in because makefile.w32-in 91# emacsclient.$(O) depends on makefile.w32-in because makefile.w32-in
92# can be edited to define VERSION string, which is part of ECLIENT_CFLAGS. 92# can be edited to define VERSION string, which is part of ECLIENT_CFLAGS.
@@ -285,7 +285,7 @@ lisp2 = \
285 - $(DEL) temacs.exe 285 - $(DEL) temacs.exe
286 286
287DOC = DOC 287DOC = DOC
288$(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2) 288$(DOC): stamp_BLD $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp2)
289 - $(DEL) $(DOC) 289 - $(DEL) $(DOC)
290 "$(THISDIR)/$(BLD)/make-docfile" -o $(DOC) -d ../src $(obj) 290 "$(THISDIR)/$(BLD)/make-docfile" -o $(DOC) -d ../src $(obj)
291 "$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1) 291 "$(THISDIR)/$(BLD)/make-docfile" -a $(DOC) -d ../src $(lisp1)
@@ -301,7 +301,7 @@ $(DOC): $(BLD) $(BLD)/make-docfile.exe ../src/$(BLD)/temacs.exe $(lisp1) $(lisp
301# 301#
302# Build the executables 302# Build the executables
303# 303#
304all: $(BLD) $(ALL) $(DOC) 304all: stamp_BLD $(ALL) $(DOC)
305 305
306# 306#
307# Assuming INSTALL_DIR is defined, build and install emacs in it. 307# Assuming INSTALL_DIR is defined, build and install emacs in it.
@@ -329,6 +329,7 @@ clean:
329 - $(DEL) ctags.c 329 - $(DEL) ctags.c
330 - $(DEL) getopt.h 330 - $(DEL) getopt.h
331 - $(DEL_TREE) $(OBJDIR) 331 - $(DEL_TREE) $(OBJDIR)
332 - $(DEL) stamp_BLD
332 333
333cleanall: clean 334cleanall: clean
334 - $(DEL_TREE) obj 335 - $(DEL_TREE) obj
@@ -482,3 +483,16 @@ $(BLD)/timer.$(O) : \
482 $(EMACS_ROOT)/src/s/ms-w32.h \ 483 $(EMACS_ROOT)/src/s/ms-w32.h \
483 $(EMACS_ROOT)/src/m/intel386.h \ 484 $(EMACS_ROOT)/src/m/intel386.h \
484 $(EMACS_ROOT)/lib-src/../src/config.h 485 $(EMACS_ROOT)/lib-src/../src/config.h
486
487# The following dependencies are for supporting parallel builds, where
488# we must make sure $(BLD) exists before any compilation starts.
489#
490$(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O): stamp_BLD
491
492$(BLD)/sorted-doc.$(O) $(BLD)/digest-doc.$(O): stamp_BLD
493
494$(BLD)/test-distrib.$(O) $(GETOPTOBJS) $(MOVEMAILOBJS): stamp_BLD
495
496$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD
497
498$(BLD)/ebrowse.$(O) $(BLD)/ctags.$(O): stamp_BLD