aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib-src/ChangeLog19
-rw-r--r--lib-src/makefile.w32-in51
-rw-r--r--lib-src/ntlib.c2
-rw-r--r--lib-src/ntlib.h2
-rw-r--r--lib/getopt_.h280
-rw-r--r--lib/makefile.w32-in154
-rw-r--r--nt/ChangeLog17
-rw-r--r--nt/config.nt67
-rwxr-xr-xnt/configure.bat1
-rw-r--r--nt/makefile.w32-in22
-rw-r--r--src/ChangeLog10
-rw-r--r--src/makefile.w32-in9
-rw-r--r--src/s/ms-w32.h1
14 files changed, 591 insertions, 49 deletions
diff --git a/ChangeLog b/ChangeLog
index 27c010fc6dd..6bf329b4d2f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * lib/makefile.w32-in:
4 * lib/getopt_.h: New files.
5
12011-01-28 Paul Eggert <eggert@cs.ucla.edu> 62011-01-28 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 improve fix for MS-DOS file name clash 8 improve fix for MS-DOS file name clash
diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog
index 2abfd6c8062..bc76c253ab3 100644
--- a/lib-src/ChangeLog
+++ b/lib-src/ChangeLog
@@ -1,3 +1,22 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
4 (GETOPTOBJS, GETOPTDEPS): Remove targets.
5 (MOVEMAILOBJS): Replace $(GETOPTOBJS) with ../lib/$(BLD)/libgnu.$(A).
6 ($(BLD)/movemail.exe): Depend on ../lib/getopt.h.
7 (ECLIENTOBJS, ETAGSOBJ, CTAGSOBJ, EBROWSEOBJ): Replace getopt.o
8 and getopt1.o with ../lib/$(BLD)/libgnu.$(A).
9 (clean): Don't remove getopt.h.
10 (getopt.h, $(BLD)/getopt.$(O), $(BLD)/getopt1.$(O)): Remove targets.
11 ($(BLD)/ctags.$(O), $(BLD)/etags.$(O)): Replace getopt.h with
12 $(EMACS_ROOT)/lib/getopt.h.
13
142011-01-28 Chong Yidong <cyd@stupidchicken.com>
15
16 * ntlib.c (setregid): New stub, renamed from setegid.
17
18 * ntlib.h: Update prototype.
19
12011-01-25 Chong Yidong <cyd@stupidchicken.com> 202011-01-25 Chong Yidong <cyd@stupidchicken.com>
2 21
3 * movemail.c (main): Use setregid instead of setegid, which is 22 * movemail.c (main): Use setregid instead of setegid, which is
diff --git a/lib-src/makefile.w32-in b/lib-src/makefile.w32-in
index 80931fc3ca2..3685d0e71be 100644
--- a/lib-src/makefile.w32-in
+++ b/lib-src/makefile.w32-in
@@ -24,8 +24,8 @@ ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient
24VERSION = 24.0.50 24VERSION = 24.0.50
25 25
26LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \ 26LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
27 -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \ 27 -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \
28 -I../src 28 -I../nt/inc -I../src
29 29
30LIBS = $(BASE_LIBS) $(ADVAPI32) 30LIBS = $(BASE_LIBS) $(ADVAPI32)
31 31
@@ -50,22 +50,19 @@ emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
50test-distrib: stamp_BLD $(BLD)/test-distrib.exe 50test-distrib: stamp_BLD $(BLD)/test-distrib.exe
51 "$(BLD)/test-distrib.exe" "$(SRC)/testfile" 51 "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
52 52
53GETOPTOBJS = $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O)
54GETOPTDEPS = $(GETOPTOBJS) getopt.h
55MOVEMAILOBJS = $(BLD)/movemail.$(O) \ 53MOVEMAILOBJS = $(BLD)/movemail.$(O) \
56 $(BLD)/pop.$(O) \ 54 $(BLD)/pop.$(O) \
57 $(BLD)/ntlib.$(O) \ 55 ../lib/$(BLD)/libgnu.$(A) \
58 $(GETOPTOBJS) 56 $(BLD)/ntlib.$(O)
59 57
60$(BLD)/movemail.exe: $(MOVEMAILOBJS) getopt.h 58$(BLD)/movemail.exe: $(MOVEMAILOBJS) ../lib/getopt.h
61# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib 59# put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
62 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS) 60 $(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
63 61
64ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR -DVERSION="\"$(VERSION)\"" 62ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR -DVERSION="\"$(VERSION)\""
65ECLIENTOBJS = $(BLD)/emacsclient.$(O) \ 63ECLIENTOBJS = $(BLD)/emacsclient.$(O) \
66 $(BLD)/getopt.$(O) \ 64 $(BLD)/ntlib.$(O) \
67 $(BLD)/getopt1.$(O) \ 65 ../lib/$(BLD)/libgnu.$(A)
68 $(BLD)/ntlib.$(O)
69CLIENTRES = ../nt/$(BLD)/emacsclient.res 66CLIENTRES = ../nt/$(BLD)/emacsclient.res
70 67
71$(CLIENTRES): ../nt/emacsclient.rc 68$(CLIENTRES): ../nt/emacsclient.rc
@@ -86,8 +83,7 @@ $(BLD)/emacsclient.$(O): emacsclient.c makefile.w32-in
86 $(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c 83 $(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
87 84
88ETAGSOBJ = $(BLD)/etags.$(O) \ 85ETAGSOBJ = $(BLD)/etags.$(O) \
89 $(BLD)/getopt.$(O) \ 86 ../lib/$(BLD)/libgnu.$(A) \
90 $(BLD)/getopt1.$(O) \
91 $(BLD)/ntlib.$(O) \ 87 $(BLD)/ntlib.$(O) \
92 $(BLD)/regex.$(O) 88 $(BLD)/regex.$(O)
93 89
@@ -96,8 +92,7 @@ $(BLD)/etags.exe: $(ETAGSOBJ)
96 92
97 93
98EBROWSEOBJ = $(BLD)/ebrowse.$(O) \ 94EBROWSEOBJ = $(BLD)/ebrowse.$(O) \
99 $(BLD)/getopt.$(O) \ 95 ../lib/$(BLD)/libgnu.$(A) \
100 $(BLD)/getopt1.$(O) \
101 $(BLD)/ntlib.$(O) 96 $(BLD)/ntlib.$(O)
102 97
103$(BLD)/ebrowse.exe: $(EBROWSEOBJ) 98$(BLD)/ebrowse.exe: $(EBROWSEOBJ)
@@ -112,8 +107,7 @@ $(BLD)/etags.$(O): etags.c
112 $(CC) $(CFLAGS) $(ETAGS_CFLAGS) $(CC_OUT)$@ etags.c 107 $(CC) $(CFLAGS) $(ETAGS_CFLAGS) $(CC_OUT)$@ etags.c
113 108
114CTAGSOBJ = $(BLD)/ctags.$(O) \ 109CTAGSOBJ = $(BLD)/ctags.$(O) \
115 $(BLD)/getopt.$(O) \ 110 ../lib/$(BLD)/libgnu.$(A) \
116 $(BLD)/getopt1.$(O) \
117 $(BLD)/ntlib.$(O) \ 111 $(BLD)/ntlib.$(O) \
118 $(BLD)/regex.$(O) 112 $(BLD)/regex.$(O)
119 113
@@ -340,7 +334,6 @@ install: $(INSTALL_FILES)
340clean: 334clean:
341 - $(DEL) DOC* $(COMPILER_TEMP_FILES) 335 - $(DEL) DOC* $(COMPILER_TEMP_FILES)
342 - $(DEL) ctags.c 336 - $(DEL) ctags.c
343 - $(DEL) getopt.h
344 - $(DEL_TREE) $(OBJDIR) 337 - $(DEL_TREE) $(OBJDIR)
345 - $(DEL) stamp_BLD 338 - $(DEL) stamp_BLD
346 - $(DEL) echolisp.tmp 339 - $(DEL) echolisp.tmp
@@ -365,9 +358,6 @@ cleanall: clean
365 echo $(CONFIG_H) has changed. Re-run configure.bat. 358 echo $(CONFIG_H) has changed. Re-run configure.bat.
366 exit -1 359 exit -1
367 360
368getopt.h: getopt_.h
369 $(CP) $(ALL_DEPS) $@
370
371### TAGS ### 361### TAGS ###
372 362
373TAGS: $(BLD)/etags.exe *.c *.h 363TAGS: $(BLD)/etags.exe *.c *.h
@@ -392,7 +382,7 @@ $(BLD)/ctags.$(O) : \
392 $(EMACS_ROOT)/src/m/intel386.h \ 382 $(EMACS_ROOT)/src/m/intel386.h \
393 $(EMACS_ROOT)/lib-src/../src/config.h \ 383 $(EMACS_ROOT)/lib-src/../src/config.h \
394 $(SRC)/ntlib.h \ 384 $(SRC)/ntlib.h \
395 $(SRC)/getopt.h 385 $(EMACS_ROOT)/lib/getopt.h
396 386
397$(BLD)/emacsclient.$(O) : \ 387$(BLD)/emacsclient.$(O) : \
398 $(SRC)/emacsclient.c \ 388 $(SRC)/emacsclient.c \
@@ -407,7 +397,7 @@ $(BLD)/etags.$(O) : \
407 $(EMACS_ROOT)/src/m/intel386.h \ 397 $(EMACS_ROOT)/src/m/intel386.h \
408 $(EMACS_ROOT)/lib-src/../src/config.h \ 398 $(EMACS_ROOT)/lib-src/../src/config.h \
409 $(SRC)/ntlib.h \ 399 $(SRC)/ntlib.h \
410 $(SRC)/getopt.h 400 $(EMACS_ROOT)/lib/getopt.h
411 401
412$(BLD)/fakemail.$(O) : \ 402$(BLD)/fakemail.$(O) : \
413 $(SRC)/fakemail.c \ 403 $(SRC)/fakemail.c \
@@ -424,21 +414,6 @@ $(BLD)/getdate.$(O) : \
424 $(EMACS_ROOT)/src/config.h \ 414 $(EMACS_ROOT)/src/config.h \
425 $(MSTOOLS_SYS)/types.h 415 $(MSTOOLS_SYS)/types.h
426 416
427$(BLD)/getopt.$(O) : \
428 $(SRC)/getopt.c \
429 $(EMACS_ROOT)/src/s/ms-w32.h \
430 $(EMACS_ROOT)/src/m/intel386.h \
431 $(EMACS_ROOT)/src/config.h \
432 $(SRC)/ntlib.h \
433 $(SRC)/getopt.h
434
435$(BLD)/getopt1.$(O) : \
436 $(SRC)/getopt1.c \
437 $(EMACS_ROOT)/src/s/ms-w32.h \
438 $(EMACS_ROOT)/src/m/intel386.h \
439 $(EMACS_ROOT)/src/config.h \
440 $(SRC)/getopt.h
441
442$(BLD)/hexl.$(O) : \ 417$(BLD)/hexl.$(O) : \
443 $(SRC)/hexl.c 418 $(SRC)/hexl.c
444 419
@@ -500,7 +475,7 @@ $(BLD)/timer.$(O) : \
500# 475#
501$(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O): stamp_BLD 476$(BLD)/make-docfile.$(O) $(BLD)/hexl.$(O) $(BLD)/fakemail.$(O): stamp_BLD
502 477
503$(BLD)/test-distrib.$(O) $(GETOPTOBJS) $(MOVEMAILOBJS): stamp_BLD 478$(BLD)/test-distrib.$(O) $(MOVEMAILOBJS): stamp_BLD
504 479
505$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD 480$(BLD)/emacsclient.$(O) $(BLD)/etags.$(O) $(BLD)/regex.$(O): stamp_BLD
506 481
diff --git a/lib-src/ntlib.c b/lib-src/ntlib.c
index 02db2afdd37..0ecd4177d2c 100644
--- a/lib-src/ntlib.c
+++ b/lib-src/ntlib.c
@@ -143,7 +143,7 @@ setuid (unsigned uid)
143} 143}
144 144
145int 145int
146setegid (unsigned gid) 146setregid (unsigned rgid, unsigned gid)
147{ 147{
148 return 0; 148 return 0;
149} 149}
diff --git a/lib-src/ntlib.h b/lib-src/ntlib.h
index d328913d71d..be8d2a58a50 100644
--- a/lib-src/ntlib.h
+++ b/lib-src/ntlib.h
@@ -38,7 +38,7 @@ unsigned getuid (void);
38unsigned getegid (void); 38unsigned getegid (void);
39unsigned getgid (void); 39unsigned getgid (void);
40int setuid (unsigned uid); 40int setuid (unsigned uid);
41int setegid (unsigned gid); 41int setregid (unsigned rgid, unsigned gid);
42char * getpass (const char * prompt); 42char * getpass (const char * prompt);
43int fchown (int fd, unsigned uid, unsigned gid); 43int fchown (int fd, unsigned uid, unsigned gid);
44 44
diff --git a/lib/getopt_.h b/lib/getopt_.h
new file mode 100644
index 00000000000..0b7ea2c3e9d
--- /dev/null
+++ b/lib/getopt_.h
@@ -0,0 +1,280 @@
1/* Declarations for getopt.
2 Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2011 Free Software
3 Foundation, Inc.
4 This file is part of the GNU C Library.
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18
19#ifndef _GL_GETOPT_H
20
21#if __GNUC__ >= 3
22#pragma GCC system_header
23#endif
24
25
26/* The include_next requires a split double-inclusion guard. We must
27 also inform the replacement unistd.h to not recursively use
28 <getopt.h>; our definitions will be present soon enough. */
29#if HAVE_GETOPT_H
30# define _GL_SYSTEM_GETOPT
31# ifndef __GNUC__
32# include <next_getopt.h>
33# else
34# include_next <getopt.h>
35# endif
36# undef _GL_SYSTEM_GETOPT
37#endif
38
39#ifndef _GL_GETOPT_H
40
41#ifndef __need_getopt
42# define _GL_GETOPT_H 1
43#endif
44
45/* Standalone applications should #define __GETOPT_PREFIX to an
46 identifier that prefixes the external functions and variables
47 defined in this header. When this happens, include the
48 headers that might declare getopt so that they will not cause
49 confusion if included after this file (if the system had <getopt.h>,
50 we have already included it). Then systematically rename
51 identifiers so that they do not collide with the system functions
52 and variables. Renaming avoids problems with some compilers and
53 linkers. */
54#if defined __GETOPT_PREFIX && !defined __need_getopt
55# if !HAVE_GETOPT_H
56# include <stdlib.h>
57# include <stdio.h>
58# include <unistd.h>
59# endif
60# undef __need_getopt
61# undef getopt
62# undef getopt_long
63# undef getopt_long_only
64# undef optarg
65# undef opterr
66# undef optind
67# undef optopt
68# undef option
69# define __GETOPT_CONCAT(x, y) x ## y
70# define __GETOPT_XCONCAT(x, y) __GETOPT_CONCAT (x, y)
71# define __GETOPT_ID(y) __GETOPT_XCONCAT (__GETOPT_PREFIX, y)
72# define getopt __GETOPT_ID (getopt)
73# define getopt_long __GETOPT_ID (getopt_long)
74# define getopt_long_only __GETOPT_ID (getopt_long_only)
75# define optarg __GETOPT_ID (optarg)
76# define opterr __GETOPT_ID (opterr)
77# define optind __GETOPT_ID (optind)
78# define optopt __GETOPT_ID (optopt)
79# define option __GETOPT_ID (option)
80# define _getopt_internal __GETOPT_ID (getopt_internal)
81#endif
82
83/* Standalone applications get correct prototypes for getopt_long and
84 getopt_long_only; they declare "char **argv". libc uses prototypes
85 with "char *const *argv" that are incorrect because getopt_long and
86 getopt_long_only can permute argv; this is required for backward
87 compatibility (e.g., for LSB 2.0.1).
88
89 This used to be `#if defined __GETOPT_PREFIX && !defined __need_getopt',
90 but it caused redefinition warnings if both unistd.h and getopt.h were
91 included, since unistd.h includes getopt.h having previously defined
92 __need_getopt.
93
94 The only place where __getopt_argv_const is used is in definitions
95 of getopt_long and getopt_long_only below, but these are visible
96 only if __need_getopt is not defined, so it is quite safe to rewrite
97 the conditional as follows:
98*/
99#if !defined __need_getopt
100# if defined __GETOPT_PREFIX
101# define __getopt_argv_const /* empty */
102# else
103# define __getopt_argv_const const
104# endif
105#endif
106
107/* If __GNU_LIBRARY__ is not already defined, either we are being used
108 standalone, or this is the first header included in the source file.
109 If we are being used with glibc, we need to include <features.h>, but
110 that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
111 not defined, include <ctype.h>, which will pull in <features.h> for us
112 if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
113 doesn't flood the namespace with stuff the way some other headers do.) */
114#if !defined __GNU_LIBRARY__
115# include <ctype.h>
116#endif
117
118#ifndef __THROW
119# ifndef __GNUC_PREREQ
120# define __GNUC_PREREQ(maj, min) (0)
121# endif
122# if defined __cplusplus && __GNUC_PREREQ (2,8)
123# define __THROW throw ()
124# else
125# define __THROW
126# endif
127#endif
128
129/* The definition of _GL_ARG_NONNULL is copied here. */
130/* A C macro for declaring that specific arguments must not be NULL.
131 Copyright (C) 2009-2011 Free Software Foundation, Inc.
132
133 This program is free software: you can redistribute it and/or modify it
134 under the terms of the GNU General Public License as published
135 by the Free Software Foundation; either version 3 of the License, or
136 (at your option) any later version.
137
138 This program is distributed in the hope that it will be useful,
139 but WITHOUT ANY WARRANTY; without even the implied warranty of
140 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
141 Lesser General Public License for more details.
142
143 You should have received a copy of the GNU General Public License
144 along with this program. If not, see <http://www.gnu.org/licenses/>. */
145
146/* _GL_ARG_NONNULL((n,...,m)) tells the compiler and static analyzer tools
147 that the values passed as arguments n, ..., m must be non-NULL pointers.
148 n = 1 stands for the first argument, n = 2 for the second argument etc. */
149#ifndef _GL_ARG_NONNULL
150# if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || __GNUC__ > 3
151# define _GL_ARG_NONNULL(params) __attribute__ ((__nonnull__ params))
152# else
153# define _GL_ARG_NONNULL(params)
154# endif
155#endif
156
157#ifdef __cplusplus
158extern "C" {
159#endif
160
161/* For communication from `getopt' to the caller.
162 When `getopt' finds an option that takes an argument,
163 the argument value is returned here.
164 Also, when `ordering' is RETURN_IN_ORDER,
165 each non-option ARGV-element is returned here. */
166
167extern char *optarg;
168
169/* Index in ARGV of the next element to be scanned.
170 This is used for communication to and from the caller
171 and for communication between successive calls to `getopt'.
172
173 On entry to `getopt', zero means this is the first call; initialize.
174
175 When `getopt' returns -1, this is the index of the first of the
176 non-option elements that the caller should itself scan.
177
178 Otherwise, `optind' communicates from one call to the next
179 how much of ARGV has been scanned so far. */
180
181extern int optind;
182
183/* Callers store zero here to inhibit the error message `getopt' prints
184 for unrecognized options. */
185
186extern int opterr;
187
188/* Set to an option character which was unrecognized. */
189
190extern int optopt;
191
192#ifndef __need_getopt
193/* Describe the long-named options requested by the application.
194 The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
195 of `struct option' terminated by an element containing a name which is
196 zero.
197
198 The field `has_arg' is:
199 no_argument (or 0) if the option does not take an argument,
200 required_argument (or 1) if the option requires an argument,
201 optional_argument (or 2) if the option takes an optional argument.
202
203 If the field `flag' is not NULL, it points to a variable that is set
204 to the value given in the field `val' when the option is found, but
205 left unchanged if the option is not found.
206
207 To have a long-named option do something other than set an `int' to
208 a compiled-in constant, such as set a value from `optarg', set the
209 option's `flag' field to zero and its `val' field to a nonzero
210 value (the equivalent single-letter option character, if there is
211 one). For long options that have a zero `flag' field, `getopt'
212 returns the contents of the `val' field. */
213
214struct option
215{
216 const char *name;
217 /* has_arg can't be an enum because some compilers complain about
218 type mismatches in all the code that assumes it is an int. */
219 int has_arg;
220 int *flag;
221 int val;
222};
223
224/* Names for the values of the `has_arg' field of `struct option'. */
225
226# define no_argument 0
227# define required_argument 1
228# define optional_argument 2
229#endif /* need getopt */
230
231
232/* Get definitions and prototypes for functions to process the
233 arguments in ARGV (ARGC of them, minus the program name) for
234 options given in OPTS.
235
236 Return the option character from OPTS just read. Return -1 when
237 there are no more options. For unrecognized options, or options
238 missing arguments, `optopt' is set to the option letter, and '?' is
239 returned.
240
241 The OPTS string is a list of characters which are recognized option
242 letters, optionally followed by colons, specifying that that letter
243 takes an argument, to be placed in `optarg'.
244
245 If a letter in OPTS is followed by two colons, its argument is
246 optional. This behavior is specific to the GNU `getopt'.
247
248 The argument `--' causes premature termination of argument
249 scanning, explicitly telling `getopt' that there are no more
250 options.
251
252 If OPTS begins with `-', then non-option arguments are treated as
253 arguments to the option '\1'. This behavior is specific to the GNU
254 `getopt'. If OPTS begins with `+', or POSIXLY_CORRECT is set in
255 the environment, then do not permute arguments. */
256
257extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
258 __THROW _GL_ARG_NONNULL ((2, 3));
259
260#ifndef __need_getopt
261extern int getopt_long (int ___argc, char *__getopt_argv_const *___argv,
262 const char *__shortopts,
263 const struct option *__longopts, int *__longind)
264 __THROW _GL_ARG_NONNULL ((2, 3));
265extern int getopt_long_only (int ___argc, char *__getopt_argv_const *___argv,
266 const char *__shortopts,
267 const struct option *__longopts, int *__longind)
268 __THROW _GL_ARG_NONNULL ((2, 3));
269
270#endif
271
272#ifdef __cplusplus
273}
274#endif
275
276/* Make sure we later can get all the definitions and declarations. */
277#undef __need_getopt
278
279#endif /* getopt.h */
280#endif /* getopt.h */
diff --git a/lib/makefile.w32-in b/lib/makefile.w32-in
new file mode 100644
index 00000000000..cf74288e2cf
--- /dev/null
+++ b/lib/makefile.w32-in
@@ -0,0 +1,154 @@
1# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
2# Copyright (C) 2011 Free Software Foundation, Inc.
3
4# This file is part of GNU Emacs.
5
6# GNU Emacs is free software: you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation, either version 3 of the License, or
9# (at your option) any later version.
10
11# GNU Emacs is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15
16# You should have received a copy of the GNU General Public License
17# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
18
19ALL = gnulib
20
21.PHONY: $(ALL)
22
23LOCAL_FLAGS = -DHAVE_CONFIG_H=1 -I. -I../nt/inc -I../src
24LIBS =
25
26GNULIBOBJS = $(BLD)/dtoastr.$(O) $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O)
27
28#
29# Build the library
30#
31$(BLD)/libgnu.$(A): $(GNULIBOBJS)
32 - $(DEL) $@
33 $(AR) $(AR_OUT)$@ $(ALL_DEPS)
34
35gnulib: stamp_BLD $(BLD)/libgnu.$(A)
36
37#
38# Build everything
39#
40all: stamp_BLD $(ALL)
41
42### TAGS ###
43
44TAGS:
45 ../lib-src/$(BLD)/etags.exe *.c *.h
46
47### DEPENDENCIES ###
48
49EMACS_ROOT = ..
50SRC = .
51
52$(BLD)/dtoastr.$(O) : \
53 $(SRC)/dtoastr.c \
54 $(SRC)/ftoastr.c \
55 $(SRC)/ftoastr.h \
56 $(SRC)/intprops.h \
57 $(EMACS_ROOT)/src/config.h
58
59$(BLD)/getopt.$(O) : \
60 $(SRC)/getopt.c \
61 $(SRC)/getopt.h \
62 $(SRC)/getopt_int.h \
63 $(EMACS_ROOT)/src/s/ms-w32.h \
64 $(EMACS_ROOT)/src/m/intel386.h \
65 $(EMACS_ROOT)/src/config.h
66
67$(BLD)/getopt1.$(O) : \
68 $(SRC)/getopt1.c \
69 $(SRC)/getopt.h \
70 $(SRC)/getopt_int.h \
71 $(EMACS_ROOT)/src/s/ms-w32.h \
72 $(EMACS_ROOT)/src/m/intel386.h \
73 $(EMACS_ROOT)/src/config.h
74
75# The following dependencies are for supporting parallel builds, where
76# we must make sure $(BLD) exists before any compilation starts.
77#
78$(BLD)/dtoastr.$(O) $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O): stamp_BLD
79
80#
81# Headers we would preprocess if we could.
82#
83getopt.h: getopt_.h
84 $(CP) $(ALL_DEPS) $@
85
86#
87# Maintenance
88#
89clean:
90 - $(DEL) $(COMPILER_TEMP_FILES)
91 - $(DEL) getopt.h
92 - $(DEL_TREE) $(OBJDIR)
93 - $(DEL) stamp_BLD
94
95distclean: cleanall
96 - $(DEL) TAGS
97 - $(DEL) Makefile
98
99maintainer-clean: distclean
100 - $(DEL) getopt_.h
101
102cleanall: clean
103 - $(DEL_TREE) obj
104 - $(DEL_TREE) obj-spd
105 - $(DEL_TREE) oo
106 - $(DEL_TREE) oo-spd
107
108# A dummy target to force other targets to be evaluated.
109doit:
110
111getopt_.h: getopt.in.h $(ARG_NONNULL_H)
112 $(MAKE) $(MFLAGS) getopt_.h-$(SHELLTYPE)
113
114getopt_.h-CMD: doit
115 @echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h.
116 @echo Run "$(MAKETYPE) getopt_h" in the lib/ subdirectory.
117 @echo You will need GNU Sed to be installed.
118 exit -1
119
120getopt_.h-SH: doit
121 @echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h.
122 @echo Run '"$(MAKETYPE) getopt_h"' in the lib/ subdirectory.
123 @echo You will need GNU Sed to be installed.
124 exit -1
125
126# Generating getopt_.h from getopt.in.h.
127#
128# To avoid requiring all end users to install Sed, we have below
129# a maintainer-only target that produces getopt_.h from getopt.in.h.
130# For easier maintenance, all the strings that replace the @FOO@
131# placeholder are defined as Make macros below.
132
133HAVE_GETOPT_H = HAVE_GETOPT_H
134INCLUDE_NEXT = include_next
135PRAGMA_SYSTEM_HEADER = \#pragma GCC system_header
136PRAGMA_COLUMNS =
137NEXT_GETOPT_H = <getopt.h>
138ARG_NONNULL_H = ../arg-nonnull.h
139
140getopt_h:
141 - $(DEL) getopt_.h-t getopt_.h
142 sed -e "s!@HAVE_GETOPT_H@!$(HAVE_GETOPT_H)!g" \
143 -e "s!@INCLUDE_NEXT@!$(INCLUDE_NEXT)!g" \
144 -e "s!@PRAGMA_SYSTEM_HEADER@!$(PRAGMA_SYSTEM_HEADER)!g" \
145 -e "s!@PRAGMA_COLUMNS@!$(PRAGMA_COLUMNS)!g" \
146 -e "s!@NEXT_GETOPT_H@!$(NEXT_GETOPT_H)!g" \
147 -e "/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)" \
148 -e "/^\# include_next/i # ifndef __GNUC__" \
149 -e "/^\# include_next/i # include <next_getopt.h>" \
150 -e "/^\# include_next/i # else" \
151 -e "/^\# include_next/a # endif" \
152 < getopt.in.h > getopt_.h-t
153 $(CP) getopt_.h-t getopt_.h
154 - $(DEL) getopt_.h-t
diff --git a/nt/ChangeLog b/nt/ChangeLog
index e0c5aa2f756..d7301e8ff23 100644
--- a/nt/ChangeLog
+++ b/nt/ChangeLog
@@ -1,3 +1,20 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
4 (bootstrap-nmake, bootstrap-gmake, bootstrap-clean-nmake)
5 (bootstrap-clean-gmake, clean-other-dirs-nmake)
6 (clean-other-dirs-gmake, cleanall-other-dirs-nmake)
7 (cleanall-other-dirs-gmake, distclean-other-dirs-nmake)
8 (distclean-other-dirs-gmake, maintainer-clean-other-dirs-nmake)
9 (maintainer-clean-other-dirs-gmake): Recurse into ../lib as well.
10
11 * configure.bat: Create lib/makefile.
12
13 * config.nt (HAVE_MKTIME, BROKEN_MKTIME): Remove.
14 (HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV)
15 (HAVE_DECL_LOCALTIME_R, HAVE_WCHAR_T, PACKAGE, VERSION, inline)
16 (_GL_UNUSED, _UNUSED_PARAMETER_): Add definitions, for gnulib.
17
12011-01-07 Eli Zaretskii <eliz@gnu.org> 182011-01-07 Eli Zaretskii <eliz@gnu.org>
2 19
3 * config.nt (HAVE___BUILTIN_UNWIND_INIT) [GCC >= 2.8]: Define. 20 * config.nt (HAVE___BUILTIN_UNWIND_INIT) [GCC >= 2.8]: Define.
diff --git a/nt/config.nt b/nt/config.nt
index 6e10c758d3f..53d89701c69 100644
--- a/nt/config.nt
+++ b/nt/config.nt
@@ -224,7 +224,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
224#undef HAVE_SETSID 224#undef HAVE_SETSID
225#undef HAVE_FPATHCONF 225#undef HAVE_FPATHCONF
226#undef HAVE_SELECT 226#undef HAVE_SELECT
227#undef HAVE_MKTIME
228#undef HAVE_EUIDACCESS 227#undef HAVE_EUIDACCESS
229#undef HAVE_GETPAGESIZE 228#undef HAVE_GETPAGESIZE
230#undef HAVE_GET_CURRENT_DIR_NAME 229#undef HAVE_GET_CURRENT_DIR_NAME
@@ -273,6 +272,67 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
273/* Define to 1 if you have the `getopt_long_only' function. */ 272/* Define to 1 if you have the `getopt_long_only' function. */
274#undef HAVE_GETOPT_LONG_ONLY 273#undef HAVE_GETOPT_LONG_ONLY
275 274
275/* Preprocessor macros needed for gnulib imports. */
276
277/* Define to 1 if GCC-style __attribute__ ((__aligned__ (expr))) works. */
278#ifdef __GNUC__
279#define HAVE_ATTRIBUTE_ALIGNED 1
280#else
281#undef HAVE_ATTRIBUTE_ALIGNED
282#endif
283
284/* Define to 1 if strtold conforms to C99. */
285#ifdef __GNUC__
286#define HAVE_C99_STRTOLD 1
287#else
288#undef HAVE_C99_STRTOLD
289#endif
290
291/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
292 */
293#define HAVE_DECL_GETENV 1
294
295/* Define to 1 if you have the declaration of `localtime_r', and to 0 if you
296 don't. */
297#undef HAVE_DECL_LOCALTIME_R
298
299/* Define to 1 if you have the `localtime_r' function. */
300#undef HAVE_LOCALTIME_R
301
302/* Define if you have the 'wchar_t' type. */
303#define HAVE_WCHAR_T 1
304
305/* Name of package */
306#define PACKAGE "emacs"
307
308/* FIXME: This is defined by the various makefile.w32-in files for
309 now. Revisit if/when VERSION from config.h is used by any
310 Makefile.in files. */
311#if 0
312/* Version number of package */
313#define VERSION "24.0.50"
314#endif
315
316/* Define to `__inline__' or `__inline' if that's what the C compiler
317 calls it, or to nothing if 'inline' is not supported under any name. */
318#ifndef __cplusplus
319#undef inline
320#endif
321
322/* Define as a marker that can be attached to declarations that might not
323 be used. This helps to reduce warnings, such as from
324 GCC -Wunused-parameter. */
325#if __GNUC__ >= 3 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7)
326# define _GL_UNUSED __attribute__ ((__unused__))
327#else
328# define _GL_UNUSED
329#endif
330/* The name _UNUSED_PARAMETER_ is an earlier spelling, although the name
331 is a misnomer outside of parameter lists. */
332#define _UNUSED_PARAMETER_ _GL_UNUSED
333
334/* End of gnulib-related stuff. */
335
276/* If using GNU, then support inline function declarations. */ 336/* If using GNU, then support inline function declarations. */
277#ifdef __GNUC__ 337#ifdef __GNUC__
278#define INLINE __inline__ 338#define INLINE __inline__
@@ -344,11 +404,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
344#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0) 404#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0)
345#endif 405#endif
346 406
347/* Avoid link-time collision with system mktime if we will use our own. */
348#if ! HAVE_MKTIME || BROKEN_MKTIME
349#define mktime emacs_mktime
350#endif
351
352#define my_strftime nstrftime /* for strftime.c */ 407#define my_strftime nstrftime /* for strftime.c */
353 408
354#ifndef WINDOWSNT 409#ifndef WINDOWSNT
diff --git a/nt/configure.bat b/nt/configure.bat
index a2ec2ca700f..1450650304d 100755
--- a/nt/configure.bat
+++ b/nt/configure.bat
@@ -679,6 +679,7 @@ if exist config.tmp del config.tmp
679copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile 679copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile
680if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\makefile 680if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\makefile
681copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile 681copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile
682copy /b config.settings+%MAKECMD%.defs+..\lib\makefile.w32-in ..\lib\makefile
682copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile 683copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
683copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile 684copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile
684copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile 685copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile
diff --git a/nt/makefile.w32-in b/nt/makefile.w32-in
index 5ad398fd725..0ce8a5a052e 100644
--- a/nt/makefile.w32-in
+++ b/nt/makefile.w32-in
@@ -92,6 +92,8 @@ $(BLD)/addpm.$(O) $(BLD)/ddeclient.$(O) $(BLD)/runemacs.$(O) $(BLD)/cmdproxy.$(O
92all: which-sh stamp_BLD $(ALL) $(CLIENTRES) maybe-bootstrap all-other-dirs-$(MAKETYPE) 92all: which-sh stamp_BLD $(ALL) $(CLIENTRES) maybe-bootstrap all-other-dirs-$(MAKETYPE)
93 93
94all-other-dirs-nmake: addsection 94all-other-dirs-nmake: addsection
95 cd ..\lib
96 $(MAKE) $(MFLAGS) all
95 cd ..\lib-src 97 cd ..\lib-src
96 $(MAKE) $(MFLAGS) all 98 $(MAKE) $(MFLAGS) all
97 cd ..\src 99 cd ..\src
@@ -103,6 +105,7 @@ all-other-dirs-nmake: addsection
103 cd ..\nt 105 cd ..\nt
104 106
105all-other-dirs-gmake: addsection 107all-other-dirs-gmake: addsection
108 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
106 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all 109 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all
107 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all 110 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all
108 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp all 111 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp all
@@ -158,6 +161,8 @@ bootstrap-nmake: addsection cmdproxy
158 $(MAKE) $(MFLAGS) clean 161 $(MAKE) $(MFLAGS) clean
159 cd ..\lib-src 162 cd ..\lib-src
160 $(MAKE) $(MFLAGS) clean 163 $(MAKE) $(MFLAGS) clean
164 cd ..\lib
165 $(MAKE) $(MFLAGS) clean
161 cd ..\src 166 cd ..\src
162 $(MAKE) $(MFLAGS) bootstrap 167 $(MAKE) $(MFLAGS) bootstrap
163 $(MAKE) $(MFLAGS) bootstrap-clean 168 $(MAKE) $(MFLAGS) bootstrap-clean
@@ -173,6 +178,7 @@ bootstrap-gmake: addsection cmdproxy
173 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean 178 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
174 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean 179 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
175 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean 180 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
181 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
176 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap 182 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap
177 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean 183 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
178 $(CP) $(BLD)/cmdproxy.exe ../bin 184 $(CP) $(BLD)/cmdproxy.exe ../bin
@@ -184,11 +190,14 @@ bootstrap-clean: bootstrap-clean-$(MAKETYPE)
184bootstrap-clean-nmake: 190bootstrap-clean-nmake:
185 cd ..\src 191 cd ..\src
186 $(MAKE) $(MFLAGS) bootstrap-clean 192 $(MAKE) $(MFLAGS) bootstrap-clean
193 cd ..\lib
194 $(MAKE) $(MFLAGS) clean
187 cd ..\lisp 195 cd ..\lisp
188 $(MAKE) $(MFLAGS) bootstrap-clean 196 $(MAKE) $(MFLAGS) bootstrap-clean
189 197
190bootstrap-clean-gmake: 198bootstrap-clean-gmake:
191 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean 199 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
200 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
192 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean 201 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
193 202
194$(INSTALL_DIR): 203$(INSTALL_DIR):
@@ -297,6 +306,8 @@ clean: clean-other-dirs-$(MAKETYPE)
297 - $(DEL) ../etc/DOC ../etc/DOC-X 306 - $(DEL) ../etc/DOC ../etc/DOC-X
298 307
299clean-other-dirs-nmake: 308clean-other-dirs-nmake:
309 cd ..\lib
310 $(MAKE) $(MFLAGS) clean
300 cd ..\lib-src 311 cd ..\lib-src
301 $(MAKE) $(MFLAGS) clean 312 $(MAKE) $(MFLAGS) clean
302 cd ..\src 313 cd ..\src
@@ -314,6 +325,7 @@ clean-other-dirs-nmake:
314 cd ..\nt 325 cd ..\nt
315 326
316clean-other-dirs-gmake: 327clean-other-dirs-gmake:
328 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
317 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean 329 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
318 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean 330 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
319 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim clean 331 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim clean
@@ -323,6 +335,8 @@ clean-other-dirs-gmake:
323 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref clean 335 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref clean
324 336
325cleanall-other-dirs-nmake: 337cleanall-other-dirs-nmake:
338 cd ..\lib
339 $(MAKE) $(MFLAGS) cleanall
326 cd ..\lib-src 340 cd ..\lib-src
327 $(MAKE) $(MFLAGS) cleanall 341 $(MAKE) $(MFLAGS) cleanall
328 cd ..\src 342 cd ..\src
@@ -330,6 +344,7 @@ cleanall-other-dirs-nmake:
330 cd ..\nt 344 cd ..\nt
331 345
332cleanall-other-dirs-gmake: 346cleanall-other-dirs-gmake:
347 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib cleanall
333 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src cleanall 348 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src cleanall
334 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src cleanall 349 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src cleanall
335 350
@@ -355,6 +370,8 @@ top-distclean:
355distclean: distclean-other-dirs-$(MAKETYPE) top-distclean 370distclean: distclean-other-dirs-$(MAKETYPE) top-distclean
356 371
357distclean-other-dirs-nmake: 372distclean-other-dirs-nmake:
373 cd ..\lib
374 $(MAKE) $(MFLAGS) distclean
358 cd ..\lib-src 375 cd ..\lib-src
359 $(MAKE) $(MFLAGS) distclean 376 $(MAKE) $(MFLAGS) distclean
360 cd ..\src 377 cd ..\src
@@ -374,6 +391,7 @@ distclean-other-dirs-nmake:
374 cd ..\nt 391 cd ..\nt
375 392
376distclean-other-dirs-gmake: 393distclean-other-dirs-gmake:
394 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib distclean
377 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src distclean 395 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src distclean
378 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src distclean 396 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src distclean
379 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp distclean 397 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp distclean
@@ -386,6 +404,8 @@ distclean-other-dirs-gmake:
386maintainer-clean: maintainer-clean-other-dirs-$(MAKETYPE) top-distclean 404maintainer-clean: maintainer-clean-other-dirs-$(MAKETYPE) top-distclean
387 405
388maintainer-clean-other-dirs-nmake: 406maintainer-clean-other-dirs-nmake:
407 cd ..\lib
408 $(MAKE) $(MFLAGS) maintainer-clean
389 cd ..\lib-src 409 cd ..\lib-src
390 $(MAKE) $(MFLAGS) maintainer-clean 410 $(MAKE) $(MFLAGS) maintainer-clean
391 cd ..\src 411 cd ..\src
@@ -405,6 +425,7 @@ maintainer-clean-other-dirs-nmake:
405 cd ..\nt 425 cd ..\nt
406 426
407maintainer-clean-other-dirs-gmake: 427maintainer-clean-other-dirs-gmake:
428 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib maintainer-clean
408 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src maintainer-clean 429 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src maintainer-clean
409 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src maintainer-clean 430 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src maintainer-clean
410 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp maintainer-clean 431 $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp maintainer-clean
@@ -424,6 +445,7 @@ TAGS-gmake: frc
424 ../lib-src/$(BLD)/etags $(CURDIR)/*.c 445 ../lib-src/$(BLD)/etags $(CURDIR)/*.c
425 $(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP 446 $(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP
426 $(MAKE) $(MFLAGS) -C ../lib-src TAGS 447 $(MAKE) $(MFLAGS) -C ../lib-src TAGS
448 $(MAKE) $(MFLAGS) -C ../lib TAGS
427 449
428TAGS-nmake: 450TAGS-nmake:
429 echo This target is not supported with NMake 451 echo This target is not supported with NMake
diff --git a/src/ChangeLog b/src/ChangeLog
index 340ca37aae4..7f19b02ef38 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
12011-01-29 Eli Zaretskii <eliz@gnu.org>
2
3 * s/ms-w32.h (HAVE_MKTIME): Remove.
4
5 * makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
6 (GNULIB): New variable.
7 (LIBS): Add $(GNULIB).
8 $(TEMACS): Depend on $(GNULIB).
9 <top-level>: Fix font-lock disrupted by a lone `"'.
10
12011-01-29 Jan Djärv <jan.h.d@swipnet.se> 112011-01-29 Jan Djärv <jan.h.d@swipnet.se>
2 12
3 * nsselect.m (ns_string_from_pasteboard): Get length of string 13 * nsselect.m (ns_string_from_pasteboard): Get length of string
diff --git a/src/makefile.w32-in b/src/makefile.w32-in
index 549acf8f6b3..ad21419ca7f 100644
--- a/src/makefile.w32-in
+++ b/src/makefile.w32-in
@@ -28,7 +28,7 @@ EMACSLOADPATH=$(CURDIR)/../lisp
28# HAVE_CONFIG_H is required by some generic gnu sources stuck into 28# HAVE_CONFIG_H is required by some generic gnu sources stuck into
29# the emacs source tree. 29# the emacs source tree.
30# 30#
31LOCAL_FLAGS = -Demacs=1 -DHAVE_CONFIG_H -I../nt/inc -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS) 31LOCAL_FLAGS = -Demacs=1 -DHAVE_CONFIG_H -I../lib -I../nt/inc -DHAVE_NTGUI=1 $(EMACS_EXTRA_C_FLAGS)
32 32
33SRC = . 33SRC = .
34EMACS = $(BLD)/emacs.exe 34EMACS = $(BLD)/emacs.exe
@@ -40,6 +40,7 @@ TLIB2 = $(BLD)/temacs2.$(A)
40TOBJ = $(BLD)/firstfile.$(O) 40TOBJ = $(BLD)/firstfile.$(O)
41TRES = $(BLD)/emacs.res 41TRES = $(BLD)/emacs.res
42TLASTLIB = $(BLD)/lastfile.$(A) 42TLASTLIB = $(BLD)/lastfile.$(A)
43GNULIB = ../lib/$(BLD)/libgnu.$(A)
43 44
44DOC = $(OBJDIR)/etc/DOC-X 45DOC = $(OBJDIR)/etc/DOC-X
45 46
@@ -140,6 +141,7 @@ LIBS = $(TLIB0) \
140 $(TLIB1) \ 141 $(TLIB1) \
141 $(TLIB2) \ 142 $(TLIB2) \
142 $(TLASTLIB) \ 143 $(TLASTLIB) \
144 $(GNULIB) \
143 $(WINMM) \ 145 $(WINMM) \
144 $(ADVAPI32) \ 146 $(ADVAPI32) \
145 $(GDI32) \ 147 $(GDI32) \
@@ -174,7 +176,7 @@ $(EMACS): $(DOC) $(TEMACS)
174# 176#
175temacs: stamp_BLD $(TEMACS) 177temacs: stamp_BLD $(TEMACS)
176$(TEMACS): $(TLIB0) $(TLIB1) $(TLIB2) $(TLASTLIB) $(TOBJ) $(TRES) \ 178$(TEMACS): $(TLIB0) $(TLIB1) $(TLIB2) $(TLASTLIB) $(TOBJ) $(TRES) \
177 ../nt/$(BLD)/addsection.exe 179 ../nt/$(BLD)/addsection.exe $(GNULIB)
178 $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS) 180 $(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
179 "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 21 181 "../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 21
180 182
@@ -192,6 +194,9 @@ make-buildobj-CMD:
192 echo $(OBJ2) \>> buildobj.h 194 echo $(OBJ2) \>> buildobj.h
193 echo ^">> buildobj.h 195 echo ^">> buildobj.h
194 196
197# "
198# The above line is here to countermand the single quote
199# on the last "echo" command above, wrt font-lock.
195make-buildobj-SH: 200make-buildobj-SH:
196 echo '#define BUILDOBJ $(DQUOTE)\' > buildobj.h 201 echo '#define BUILDOBJ $(DQUOTE)\' > buildobj.h
197 echo $(OBJ0) '\' >> buildobj.h 202 echo $(OBJ0) '\' >> buildobj.h
diff --git a/src/s/ms-w32.h b/src/s/ms-w32.h
index e9a580629af..d247cf866f9 100644
--- a/src/s/ms-w32.h
+++ b/src/s/ms-w32.h
@@ -150,7 +150,6 @@ struct sigaction {
150#undef HAVE_SETSID 150#undef HAVE_SETSID
151#undef HAVE_FPATHCONF 151#undef HAVE_FPATHCONF
152#define HAVE_SELECT 1 152#define HAVE_SELECT 1
153#define HAVE_MKTIME 1
154#undef HAVE_EUIDACCESS 153#undef HAVE_EUIDACCESS
155#define HAVE_GETPAGESIZE 1 154#define HAVE_GETPAGESIZE 1
156#define HAVE_TZSET 1 155#define HAVE_TZSET 1