# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-# 2008, 2009, 2010 Free Software Foundation, Inc.
+# 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
TEMACS_TMP = $(BLD)/temacs.bin
TLIB0 = $(BLD)/temacs0.$(A)
TLIB1 = $(BLD)/temacs1.$(A)
-TLIBW32 = $(BLD)/temacw32.$(A)
+TLIB2 = $(BLD)/temacs2.$(A)
TOBJ = $(BLD)/firstfile.$(O)
TRES = $(BLD)/emacs.res
TLASTLIB = $(BLD)/lastfile.$(A)
$(BLD)/scroll.$(O) \
$(BLD)/search.$(O) \
$(BLD)/sound.$(O) \
- $(BLD)/syntax.$(O) \
- $(BLD)/sysdep.$(O) \
+ $(BLD)/syntax.$(O)
+
+OBJ2 = $(BLD)/sysdep.$(O) \
$(BLD)/term.$(O) \
$(BLD)/tparam.$(O) \
$(BLD)/undo.$(O) \
$(BLD)/fringe.$(O) \
$(BLD)/image.$(O) \
$(BLD)/terminal.$(O) \
- $(BLD)/menu.$(O)
-
-WIN32OBJ = $(BLD)/w32term.$(O) \
- $(BLD)/w32xfns.$(O) \
- $(BLD)/w32fns.$(O) \
- $(BLD)/xfaces.$(O) \
- $(BLD)/w32select.$(O) \
- $(BLD)/w32menu.$(O) \
- $(BLD)/w32reg.$(O)
-
-FONTOBJ = $(BLD)/w32font.$(O) $(BLD)/w32uniscribe.$(O)
+ $(BLD)/menu.$(O) \
+ $(BLD)/w32term.$(O) \
+ $(BLD)/w32xfns.$(O) \
+ $(BLD)/w32fns.$(O) \
+ $(BLD)/xfaces.$(O) \
+ $(BLD)/w32select.$(O) \
+ $(BLD)/w32menu.$(O) \
+ $(BLD)/w32reg.$(O) \
+ $(BLD)/w32font.$(O) \
+ $(BLD)/w32uniscribe.$(O)
LIBS = $(TLIB0) \
$(TLIB1) \
- $(TLIBW32) \
+ $(TLIB2) \
$(TLASTLIB) \
$(WINMM) \
$(ADVAPI32) \
$(GDI32) \
$(COMDLG32) \
$(USER32) \
- $(MPR) \
+ $(MPR) \
$(SHELL32) \
$(WINSPOOL) \
$(OLE32) \
emacs: stamp_BLD $(EMACS)
$(EMACS): $(DOC) $(TEMACS)
"$(THISDIR)/$(BLD)/temacs.exe" -batch -l loadup dump
- -"$(THISDIR)/$(BLD)/emacs.exe" -q -batch -f list-load-path-shadows
+ -"$(THISDIR)/$(BLD)/emacs.exe" -batch -f list-load-path-shadows
#
# The undumped executable
# (it is the preload heap size in MB).
#
temacs: stamp_BLD $(TEMACS)
-$(TEMACS): $(TLIB0) $(TLIB1) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES) \
+$(TEMACS): $(TLIB0) $(TLIB1) $(TLIB2) $(TLASTLIB) $(TOBJ) $(TRES) \
../nt/$(BLD)/addsection.exe
$(LINK) $(LINK_OUT)$(TEMACS_TMP) $(FULL_LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
"../nt/$(BLD)/addsection" "$(TEMACS_TMP)" "$(TEMACS)" EMHEAP 21
echo #define BUILDOBJ ^"\> buildobj.h
echo $(OBJ0) \>> buildobj.h
echo $(OBJ1) \>> buildobj.h
- echo $(WIN32OBJ) \>> buildobj.h
- echo $(FONTOBJ) \>> buildobj.h
+ echo $(OBJ2) \>> buildobj.h
echo ^">> buildobj.h
make-buildobj-SH:
echo '#define BUILDOBJ $(DQUOTE)\' > buildobj.h
echo $(OBJ0) '\' >> buildobj.h
echo $(OBJ1) '\' >> buildobj.h
- echo $(WIN32OBJ) '\' >> buildobj.h
- echo $(FONTOBJ) '\' >> buildobj.h
+ echo $(OBJ2) '\' >> buildobj.h
echo '$(DQUOTE)' >> buildobj.h
bootstrap: bootstrap-emacs
$(TLIB1): $(OBJ1)
- $(DEL) $@
$(AR) $(AR_OUT)$@ $(ALL_DEPS)
-$(TLIBW32): $(WIN32OBJ) $(FONTOBJ)
+$(TLIB2): $(OBJ2)
- $(DEL) $@
$(AR) $(AR_OUT)$@ $(ALL_DEPS)
- $(DEL_TREE) oo
- $(DEL_TREE) oo-spd
+## Arrange to make a tags table TAGS-LISP for ../lisp,
+## plus TAGS for the C files, which includes ../lisp/TAGS by reference.
+##
+## This works only with GNU Make.
+
+TAGS: $(OBJ0) $(OBJ1) $(OBJ2)
+ $(MAKE) $(MFLAGS) TAGS-$(MAKETYPE)
+
+TAGS-LISP: $(OBJ0) $(OBJ1) $(OBJ2)
+ $(MAKE) $(MFLAGS) TAGS-LISP-$(MAKETYPE)
+
+TAGS-gmake:
+ ../lib-src/$(BLD)/etags.exe --include=TAGS-LISP --include=../nt/TAGS \
+ --regex=@../nt/emacs-src.tags \
+ $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ0))
+ ../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
+ $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ1))
+ ../lib-src/$(BLD)/etags.exe -a --regex=@../nt/emacs-src.tags \
+ $(patsubst $(BLD)%.$(O),$(CURDIR)%.c,$(OBJ2)) \
+ $(CURDIR)/*.h
+
+TAGS-nmake:
+ echo This target is not supported with NMake
+ exit -1
+
+frc:
+TAGS-LISP-gmake: frc
+ $(MAKE) $(MFLAGS) -C ../lisp TAGS-LISP DEST=../src
+
+TAGS-LISP-nmake:
+ echo This target is not supported with NMake
+ exit -1
+
+../nt/TAGS: frc
+ $(MAKE) $(MFLAGS) nt-TAGS-$(MAKETYPE)
+
+nt-TAGS-gmake:
+ $(MAKE) $(MFLAGS) -C ../nt TAGS
+
+nt-TAGS-nmake:
+ echo This target is not supported with NMake
+ exit -1
+
+full-tags: TAGS TAGS-LISP ../nt/TAGS
+.PHONY: full-tags
+
### DEPENDENCIES ###
EMACS_ROOT = ..
$(SRC)/keyboard.h \
$(SRC)/keymap.h \
$(SRC)/macros.h \
+ $(SRC)/process.h \
$(SRC)/puresize.h \
$(SRC)/syntax.h \
$(SRC)/syssignal.h \
$(EMACS_ROOT)/nt/inc/pwd.h \
$(EMACS_ROOT)/nt/inc/unistd.h \
$(EMACS_ROOT)/nt/inc/sys/file.h \
- $(EMACS_ROOT)/nt/inc/sys/ioctl.h \
$(EMACS_ROOT)/nt/inc/sys/socket.h \
$(EMACS_ROOT)/nt/inc/sys/time.h \
$(SRC)/lisp.h \
$(SRC)/frame.h \
$(SRC)/keyboard.h \
$(SRC)/process.h \
+ $(SRC)/sysselect.h \
$(SRC)/syssignal.h \
$(SRC)/systime.h \
$(SRC)/systty.h \
$(SRC)/systime.h \
$(SRC)/termchar.h \
$(SRC)/termhooks.h \
+ $(SRC)/termopts.h \
$(SRC)/w32gui.h \
$(SRC)/w32term.h \
$(SRC)/window.h
# Each object file depends on stamp_BLD, because in parallel builds we must
# make sure $(BLD) exists before starting compilations.
#
-$(OBJ0) $(OBJ1) $(WIN32OBJ) $(FONTOBJ) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD
+$(OBJ0) $(OBJ1) $(OBJ2) $(BLD)/lastfile.$(O) $(BLD)/firstfile.$(O): stamp_BLD