]> code.delx.au - gnu-emacs/blobdiff - src/makefile.nt
(bdf-cache-file): Use convert-standard-filename.
[gnu-emacs] / src / makefile.nt
index 9ffd18d97ae1f95af25e9ee8b59f8e0676bdda29..e4a1a49787dfca88409dee1982af5dc43c8bfe4b 100644 (file)
@@ -33,9 +33,13 @@ SUBSYSTEM=console
 # the emacs source tree.
 #
 LOCAL_FLAGS     = -Demacs=1 -DWINDOWSNT -DDOS_NT -DHAVE_CONFIG_H -I..\nt\inc
+!ifdef NTGUI
+LOCAL_FLAGS     = $(LOCAL_FLAGS) -DHAVE_NTGUI=1
+!endif
 
 EMACS           = $(BLD)\emacs.exe
 TEMACS          = $(BLD)\temacs.exe
+TLIB0           = $(BLD)\temacs0.lib
 TLIB1           = $(BLD)\temacs1.lib
 TLIB2           = $(BLD)\temacs2.lib
 !IFDEF NTGUI
@@ -43,7 +47,7 @@ TLIBW32         = $(BLD)\temacw32.lib
 !ELSE
 TLIBW32                =
 !ENDIF
-TOBJ            = $(BLD)\emacs.obj
+TOBJ            = $(BLD)\firstfile.obj
 !if $(MSVCNT11)
 TRES           = $(BLD)\emacs.res
 !else
@@ -53,12 +57,21 @@ TLASTLIB    = $(BLD)\lastfile.lib
 
 # see comments in allocate_heap in w32heap.c before changing any of the
 # -stack, -heap, or -base settings.
-LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:cv -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map
+!if "$(BUILD_TYPE)" == "spd"
+LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd
+!else
+LINK_FLAGS      = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:none -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd
+!endif
 
 #
 # Split up the objects into two sets so that we don't run out of
 # command line space when we link them into a library.
 #
+# Put emacs.obj in a separate lib, since we need to have firstfile.obj
+# as the "main" object file when linking.
+#
+OBJ0 =  $(BLD)\emacs.obj
+
 OBJ1 =  $(BLD)\abbrev.obj       \
        $(BLD)\alloc.obj        \
        $(BLD)\alloca.obj       \
@@ -133,7 +146,8 @@ WIN32OBJ = $(BLD)\w32term.obj       \
           $(BLD)\w32menu.obj   \
           $(BLD)\w32reg.obj
 
-LIBS =  $(TLIB1)       \
+LIBS =  $(TLIB0)       \
+       $(TLIB1)        \
        $(TLIB2)        \
 !IFDEF NTGUI
        $(TLIBW32)      \
@@ -147,7 +161,9 @@ LIBS =  $(TLIB1)    \
        $(BASE_LIBS)    \
        $(ADVAPI32)     \
        user32.lib      \
-       mpr.lib
+       mpr.lib         \
+       shell32.lib     \
+       setargv.obj
 
 #
 # Build the executable and dump it.
@@ -179,13 +195,14 @@ emacs:          $(EMACS)
 $(EMACS):       $(PREPARED_HEADERS) $(DOC) $(TEMACS)
                cd $(BLD)
                temacs.exe -batch -l loadup dump
+               copy temacs.map emacs.map
                cd ..\..
 
 #
 # The undumped executable
 #
 temacs:         $(BLD) $(TEMACS)
-$(TEMACS):      $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
+$(TEMACS):      $(TLIB0) $(TLIB1) $(TLIB2) $(TLIBW32) $(TLASTLIB) $(TOBJ) $(TRES)
                $(LINK) -out:$(TEMACS) $(LINK_FLAGS) $(TOBJ) $(TRES) $(LIBS)
 
 #
@@ -202,6 +219,8 @@ $(TRES):    ..\nt\emacs.rc
 # Build the library.  Split up the build into two phases...otherwise we 
 # run out of command line space.
 #
+$(TLIB0):       $(OBJ0)
+               @- $(AR) -out:$@ $**
 $(TLIB1):       $(OBJ1)
                @- $(AR) -out:$@ $**
 $(TLIB2):      $(OBJ2)
@@ -222,8 +241,13 @@ $(TLASTLIB):       $(BLD)\lastfile.obj
 #
 # Object files.
 #
+!IF ($(_NMAKE_VER) == $(_NMAKE_VER_4))
 .c{$(BLD)}.obj:
-               $(CC) $(CFLAGS) -Fo$@ $<
+               $(CC) $(CFLAGS) -Fo$(OBJDIR)\i386\ $<
+!ELSE
+.c{$(BLD)}.obj::
+               $(CC) $(CFLAGS) -Fo$(OBJDIR)\i386\ $<
+!ENDIF
 
 #
 # Assuming INSTALL_DIR is defined, build and install emacs in it.
@@ -235,9 +259,13 @@ install:        all
 #
 # Maintenance
 # 
-clean:;         - $(DEL) *~ *.pdb config.h paths.h
+clean:;         - $(DEL) *~ s\*~
+               - $(DEL) *.pdb config.h paths.h
+               - $(DEL) *.orig *.rej *.crlf
+               - $(DEL) s\*.orig s\*.rej s\*.crlf
                - $(DEL_TREE) deleted
-               - $(DEL_TREE) $(OBJDIR)
+               - $(DEL_TREE) obj
+               - $(DEL_TREE) obj-spd
 
 #
 # These files are the ones that compile conditionally on CANNOT_DUMP...
@@ -306,12 +334,18 @@ $(BLD)\buffer.obj : \
 
 $(BLD)\bytecode.obj : \
        $(SRC)\bytecode.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\syntax.h
 
 $(BLD)\callint.obj : \
        $(SRC)\callint.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
        $(SRC)\lisp.h \
        $(SRC)\buffer.h \
        $(SRC)\commands.h \
@@ -534,6 +568,12 @@ $(BLD)\filemode.obj : \
        $(SRC)\m\intel386.h \
        $(SRC)\config.h
 
+$(BLD)\firstfile.obj : \
+       $(SRC)\firstfile.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h
+
 $(BLD)\floatfns.obj : \
        $(SRC)\floatfns.c \
        $(EMACS_ROOT)\src\s\ms-w32.h \
@@ -677,7 +717,10 @@ $(BLD)\keymap.obj : \
        $(SRC)\blockinput.h
 
 $(BLD)\lastfile.obj : \
-       $(SRC)\lastfile.c
+       $(SRC)\lastfile.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h
 
 $(BLD)\lread.obj : \
        $(SRC)\lread.c \
@@ -745,7 +788,10 @@ $(BLD)\w32.obj : \
 
 $(BLD)\w32heap.obj : \
        $(SRC)\w32heap.c \
-       $(SRC)\w32heap.h
+       $(SRC)\w32heap.h \
+       $(SRC)\s\ms-w32.h \
+       $(SRC)\m\intel386.h \
+       $(SRC)\config.h
 
 $(BLD)\w32inevt.obj : \
        $(SRC)\w32inevt.c \
@@ -755,7 +801,9 @@ $(BLD)\w32inevt.obj : \
        $(SRC)\lisp.h \
        $(SRC)\frame.h \
        $(SRC)\blockinput.h \
-       $(SRC)\termhooks.h
+       $(SRC)\termhooks.h \
+       $(SRC)\w32heap.h \
+       $(SRC)\w32term.h
 
 $(BLD)\w32proc.obj : \
        $(SRC)\w32proc.c \
@@ -764,6 +812,7 @@ $(BLD)\w32proc.obj : \
        $(SRC)\config.h \
        $(SRC)\lisp.h \
        $(SRC)\w32.h \
+       $(SRC)\w32heap.h \
        $(SRC)\vmstime.h \
        $(SRC)\systime.h
 
@@ -879,7 +928,6 @@ $(BLD)\strftime.obj : \
        $(EMACS_ROOT)\src\s\ms-w32.h \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h
-       $(CC) $(CFLAGS) -Dstrftime=emacs_strftime -Fo$@ strftime.c
 
 $(BLD)\sunfns.obj : \
        $(SRC)\sunfns.c \
@@ -986,6 +1034,9 @@ $(BLD)\undo.obj : \
 
 $(BLD)\unexw32.obj : \
        $(SRC)\unexw32.c \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
        $(SRC)\w32heap.h
 
 $(BLD)\vm-limit.obj : \
@@ -1060,6 +1111,7 @@ $(BLD)\w32fns.obj: \
        $(EMACS_ROOT)\src\m\intel386.h \
        $(EMACS_ROOT)\src\config.h \
        $(SRC)\w32fns.c \
+       $(SRC)\x-list-font.c \
        $(SRC)\lisp.h \
        $(SRC)\w32term.h \
        $(SRC)\w32gui.h \
@@ -1130,3 +1182,14 @@ $(BLD)\w32reg.obj: \
        $(SRC)\w32term.h \
        $(SRC)\w32gui.h \
        $(SRC)\blockinput.h
+
+$(BLD)\w32xfns.obj: \
+       $(EMACS_ROOT)\src\s\ms-w32.h \
+       $(EMACS_ROOT)\src\m\intel386.h \
+       $(EMACS_ROOT)\src\config.h \
+       $(SRC)\w32xfns.c \
+       $(SRC)\lisp.h \
+       $(SRC)\w32term.h \
+       $(SRC)\w32.h \
+       $(SRC)\frame.h \
+       $(SRC)\blockinput.h