diff options
author | Eli Zaretskii <eliz@gnu.org> | 2011-01-29 14:36:11 +0200 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2011-01-29 14:36:11 +0200 |
commit | f915f0f7c8a35ecc5ca95e99f5bf4286aafa3d05 (patch) | |
tree | 164a36f43c2ba41f70fb6f8aad8341bfdedab59c /lib/makefile.w32-in | |
parent | 497a1925ecc0550630ba44f29d2db7378e7c9e4e (diff) | |
download | emacs-f915f0f7c8a35ecc5ca95e99f5bf4286aafa3d05.tar.gz |
Fix the MS-Windows build broken by 2011-01-17T19:01:01Z!eggert@cs.ucla.edu and emacs-23/2010-05-21T19:51:48Z!acm@muc.de.
lib/makefile.w32-in:
lib/getopt_.h: New files.
src/s/ms-w32.h (HAVE_MKTIME): Remove.
src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
(GNULIB): New variable.
(LIBS): Add $(GNULIB).
$(TEMACS): Depend on $(GNULIB).
<top-level>: Fix font-lock disrupted by a lone `"'.
src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
(GETOPTOBJS, GETOPTDEPS): Remove targets.
(MOVEMAILOBJS): Replace $(GETOPTOBJS) with ../lib/$(BLD)/libgnu.$(A).
($(BLD)/movemail.exe): Depend on ../lib/getopt.h.
(ECLIENTOBJS, ETAGSOBJ, CTAGSOBJ, EBROWSEOBJ): Replace getopt.o
and getopt1.o with ../lib/$(BLD)/libgnu.$(A).
(clean): Don't remove getopt.h.
(getopt.h, $(BLD)/getopt.$(O), $(BLD)/getopt1.$(O)): Remove targets.
($(BLD)/ctags.$(O), $(BLD)/etags.$(O)): Replace getopt.h with
$(EMACS_ROOT)/lib/getopt.h.
nt/makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
(bootstrap-nmake, bootstrap-gmake, bootstrap-clean-nmake)
(bootstrap-clean-gmake, clean-other-dirs-nmake)
(clean-other-dirs-gmake, cleanall-other-dirs-nmake)
(cleanall-other-dirs-gmake, distclean-other-dirs-nmake)
(distclean-other-dirs-gmake, maintainer-clean-other-dirs-nmake)
(maintainer-clean-other-dirs-gmake): Recurse into ../lib as well.
nt/configure.bat: Create lib/makefile.
nt/config.nt (HAVE_MKTIME, BROKEN_MKTIME): Remove.
(HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV)
(HAVE_DECL_LOCALTIME_R, HAVE_WCHAR_T, PACKAGE, VERSION, inline)
(_GL_UNUSED, _UNUSED_PARAMETER_): Add definitions, for gnulib.
Diffstat (limited to 'lib/makefile.w32-in')
-rw-r--r-- | lib/makefile.w32-in | 154 |
1 files changed, 154 insertions, 0 deletions
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 @@ +# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API. +# Copyright (C) 2011 Free Software Foundation, Inc. + +# This file is part of GNU Emacs. + +# GNU Emacs is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# GNU Emacs is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. + +ALL = gnulib + +.PHONY: $(ALL) + +LOCAL_FLAGS = -DHAVE_CONFIG_H=1 -I. -I../nt/inc -I../src +LIBS = + +GNULIBOBJS = $(BLD)/dtoastr.$(O) $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O) + +# +# Build the library +# +$(BLD)/libgnu.$(A): $(GNULIBOBJS) + - $(DEL) $@ + $(AR) $(AR_OUT)$@ $(ALL_DEPS) + +gnulib: stamp_BLD $(BLD)/libgnu.$(A) + +# +# Build everything +# +all: stamp_BLD $(ALL) + +### TAGS ### + +TAGS: + ../lib-src/$(BLD)/etags.exe *.c *.h + +### DEPENDENCIES ### + +EMACS_ROOT = .. +SRC = . + +$(BLD)/dtoastr.$(O) : \ + $(SRC)/dtoastr.c \ + $(SRC)/ftoastr.c \ + $(SRC)/ftoastr.h \ + $(SRC)/intprops.h \ + $(EMACS_ROOT)/src/config.h + +$(BLD)/getopt.$(O) : \ + $(SRC)/getopt.c \ + $(SRC)/getopt.h \ + $(SRC)/getopt_int.h \ + $(EMACS_ROOT)/src/s/ms-w32.h \ + $(EMACS_ROOT)/src/m/intel386.h \ + $(EMACS_ROOT)/src/config.h + +$(BLD)/getopt1.$(O) : \ + $(SRC)/getopt1.c \ + $(SRC)/getopt.h \ + $(SRC)/getopt_int.h \ + $(EMACS_ROOT)/src/s/ms-w32.h \ + $(EMACS_ROOT)/src/m/intel386.h \ + $(EMACS_ROOT)/src/config.h + +# The following dependencies are for supporting parallel builds, where +# we must make sure $(BLD) exists before any compilation starts. +# +$(BLD)/dtoastr.$(O) $(BLD)/getopt.$(O) $(BLD)/getopt1.$(O): stamp_BLD + +# +# Headers we would preprocess if we could. +# +getopt.h: getopt_.h + $(CP) $(ALL_DEPS) $@ + +# +# Maintenance +# +clean: + - $(DEL) $(COMPILER_TEMP_FILES) + - $(DEL) getopt.h + - $(DEL_TREE) $(OBJDIR) + - $(DEL) stamp_BLD + +distclean: cleanall + - $(DEL) TAGS + - $(DEL) Makefile + +maintainer-clean: distclean + - $(DEL) getopt_.h + +cleanall: clean + - $(DEL_TREE) obj + - $(DEL_TREE) obj-spd + - $(DEL_TREE) oo + - $(DEL_TREE) oo-spd + +# A dummy target to force other targets to be evaluated. +doit: + +getopt_.h: getopt.in.h $(ARG_NONNULL_H) + $(MAKE) $(MFLAGS) getopt_.h-$(SHELLTYPE) + +getopt_.h-CMD: doit + @echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h. + @echo Run "$(MAKETYPE) getopt_h" in the lib/ subdirectory. + @echo You will need GNU Sed to be installed. + exit -1 + +getopt_.h-SH: doit + @echo getopt.in.h or $(ARG_NONNULL_H) is newer than getopt_.h. + @echo Run '"$(MAKETYPE) getopt_h"' in the lib/ subdirectory. + @echo You will need GNU Sed to be installed. + exit -1 + +# Generating getopt_.h from getopt.in.h. +# +# To avoid requiring all end users to install Sed, we have below +# a maintainer-only target that produces getopt_.h from getopt.in.h. +# For easier maintenance, all the strings that replace the @FOO@ +# placeholder are defined as Make macros below. + +HAVE_GETOPT_H = HAVE_GETOPT_H +INCLUDE_NEXT = include_next +PRAGMA_SYSTEM_HEADER = \#pragma GCC system_header +PRAGMA_COLUMNS = +NEXT_GETOPT_H = <getopt.h> +ARG_NONNULL_H = ../arg-nonnull.h + +getopt_h: + - $(DEL) getopt_.h-t getopt_.h + sed -e "s!@HAVE_GETOPT_H@!$(HAVE_GETOPT_H)!g" \ + -e "s!@INCLUDE_NEXT@!$(INCLUDE_NEXT)!g" \ + -e "s!@PRAGMA_SYSTEM_HEADER@!$(PRAGMA_SYSTEM_HEADER)!g" \ + -e "s!@PRAGMA_COLUMNS@!$(PRAGMA_COLUMNS)!g" \ + -e "s!@NEXT_GETOPT_H@!$(NEXT_GETOPT_H)!g" \ + -e "/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)" \ + -e "/^\# include_next/i # ifndef __GNUC__" \ + -e "/^\# include_next/i # include <next_getopt.h>" \ + -e "/^\# include_next/i # else" \ + -e "/^\# include_next/a # endif" \ + < getopt.in.h > getopt_.h-t + $(CP) getopt_.h-t getopt_.h + - $(DEL) getopt_.h-t |