diff options
Diffstat (limited to 'lib-src')
| -rw-r--r-- | lib-src/.gitignore | 1 | ||||
| -rw-r--r-- | lib-src/ChangeLog | 76 | ||||
| -rw-r--r-- | lib-src/emacsclient.c | 127 | ||||
| -rw-r--r-- | lib-src/etags.c | 19 | ||||
| -rw-r--r-- | lib-src/makefile.w32-in | 48 |
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 | |||
| 24 | blessmail | 24 | blessmail |
| 25 | *-spd | 25 | *-spd |
| 26 | *.pdb | 26 | *.pdb |
| 27 | stamp_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 @@ | |||
| 1 | 2006-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 | |||
| 11 | 2006-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 | |||
| 23 | 2006-12-20 Francesco Potort,Al(B <pot@gnu.org> | ||
| 24 | |||
| 25 | * etags.c (C_entries): DEFUN names were longer by one: corrected. | ||
| 26 | |||
| 27 | 2006-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 | |||
| 34 | 2006-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 | |||
| 41 | 2006-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 | |||
| 1 | 2006-11-30 Juanma Barranquero <lekktu@gmail.com> | 46 | 2006-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 | ||
| 17 | 2006-11-28 Kevin Ryde <user42@zip.com.au> (tiny change) | 62 | 2006-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 | ||
| 21 | 2006-11-28 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> (tiny change) | 66 | 2006-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 | ||
| 51 | 2006-11-24 Michael Mauger <mmaug@yahoo.com> | 96 | 2006-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 | ||
| 56 | 2006-11-23 Juanma Barranquero <lekktu@gmail.com> | 101 | 2006-11-23 Juanma Barranquero <lekktu@gmail.com> |
| 57 | 102 | ||
| @@ -442,10 +487,9 @@ | |||
| 442 | 487 | ||
| 443 | 2005-07-13 Ken Raeburn <raeburn@gnu.org> | 488 | 2005-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 | ||
| 450 | 2005-07-04 Lute Kamstra <lute@gnu.org> | 494 | 2005-07-04 Lute Kamstra <lute@gnu.org> |
| 451 | 495 | ||
| @@ -485,10 +529,9 @@ | |||
| 485 | 529 | ||
| 486 | 2005-02-04 Andreas Schwab <schwab@suse.de> | 530 | 2005-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 | ||
| 500 | 2004-12-26 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | 543 | 2004-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 | ||
| 505 | 2004-12-15 Andreas Schwab <schwab@suse.de> | 547 | 2004-12-15 Andreas Schwab <schwab@suse.de> |
| 506 | 548 | ||
| @@ -566,8 +608,7 @@ | |||
| 566 | 608 | ||
| 567 | 2004-05-10 Thien-Thi Nguyen <ttn@gnu.org> | 609 | 2004-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 | ||
| 572 | 2004-05-08 Jason Rumney <jasonr@gnu.org> | 613 | 2004-05-08 Jason Rumney <jasonr@gnu.org> |
| 573 | 614 | ||
| @@ -740,8 +781,7 @@ | |||
| 740 | 781 | ||
| 741 | 2003-04-27 Oliver Scholz <alkibiades@gmx.de> | 782 | 2003-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 | ||
| 746 | 2003-04-12 Stefan Monnier <monnier@cs.yale.edu> | 786 | 2003-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. */ | ||
| 307 | int | 304 | int |
| 308 | w32_window_app() | 305 | w32_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. */ |
| 687 | void | 684 | void |
| 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 | */ | ||
| 718 | int | ||
| 719 | w32_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 | */ |
| 714 | int | 748 | int |
| 715 | get_server_config (server, authentication) | 749 | get_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 | ||
| 1183 | FARPROC set_fg; /* Pointer to AllowSetForegroundWindow. */ | ||
| 1184 | FARPROC get_wc; /* Pointer to RealGetWindowClassA. */ | ||
| 1185 | |||
| 1186 | BOOL CALLBACK | ||
| 1187 | w32_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 | */ | ||
| 1216 | void | ||
| 1217 | w32_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 | |||
| 1148 | int | 1238 | int |
| 1149 | main (argc, argv) | 1239 | main (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 | ||
| 44 | char pot_etags_version[] = "@(#) pot revision number is $Revision: 3.61 $"; | 44 | char 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 | |||
| 3163 | make_C_tag (isfun) | 3163 | make_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 | ||
| 27 | VERSION = 22.0.91 | 27 | VERSION = 22.0.92 |
| 28 | 28 | ||
| 29 | LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ | 29 | LOCAL_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 | ||
| 48 | make-docfile: $(BLD) $(BLD)/make-docfile.exe | 48 | make-docfile: stamp_BLD $(BLD)/make-docfile.exe |
| 49 | ctags: $(BLD) $(BLD)/ctags.exe | 49 | ctags: stamp_BLD $(BLD)/ctags.exe |
| 50 | etags: $(BLD) $(BLD)/etags.exe | 50 | etags: stamp_BLD $(BLD)/etags.exe |
| 51 | ebrowse: $(BLD) $(BLD)/ebrowse.exe | 51 | ebrowse: stamp_BLD $(BLD)/ebrowse.exe |
| 52 | hexl: $(BLD) $(BLD)/hexl.exe | 52 | hexl: stamp_BLD $(BLD)/hexl.exe |
| 53 | movemail: $(BLD) $(BLD)/movemail.exe | 53 | movemail: stamp_BLD $(BLD)/movemail.exe |
| 54 | fakemail: $(BLD) $(BLD)/fakemail.exe | 54 | fakemail: stamp_BLD $(BLD)/fakemail.exe |
| 55 | sorted-doc: $(BLD) $(BLD)/sorted-doc.exe | 55 | sorted-doc: stamp_BLD $(BLD)/sorted-doc.exe |
| 56 | digest-doc: $(BLD) $(BLD)/digest-doc.exe | 56 | digest-doc: stamp_BLD $(BLD)/digest-doc.exe |
| 57 | emacsclient: $(BLD) $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe | 57 | emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe |
| 58 | 58 | ||
| 59 | test-distrib: $(BLD) $(BLD)/test-distrib.exe | 59 | test-distrib: stamp_BLD $(BLD)/test-distrib.exe |
| 60 | "$(BLD)/test-distrib.exe" "$(SRC)/testfile" | 60 | "$(BLD)/test-distrib.exe" "$(SRC)/testfile" |
| 61 | 61 | ||
| 62 | GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O) | 62 | GETOPTOBJS = $(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 | ||
| 287 | DOC = DOC | 287 | DOC = 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 | # |
| 304 | all: $(BLD) $(ALL) $(DOC) | 304 | all: 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 | ||
| 333 | cleanall: clean | 334 | cleanall: 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 | ||