X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/2e17c871e3359380613cbe82ec7cf51a040b6865..9244a058d3d3d6e38dceea7398f5165651d1bf47:/nt/makefile.nt diff --git a/nt/makefile.nt b/nt/makefile.nt index 42567d61ce..35fc32fee6 100644 --- a/nt/makefile.nt +++ b/nt/makefile.nt @@ -22,10 +22,12 @@ # 9-6-94 !include makefile.def -ALL = $(BLD)\addpm.exe - -.c{$(BLD)}.obj: - $(CC) $(CFLAGS) -Fo$@ $< +ALL = addpm ddeclient runemacs cmdproxy addsection preprep +!if $(MSVCNT11) +TRES = $(BLD)\emacs.res +!else +TRES = $(BLD)\emacs.rbj +!endif addpm: $(BLD) $(BLD)\addpm.exe $(BLD)\addpm.obj: addpm.c @@ -33,6 +35,46 @@ $(BLD)\addpm.exe: $(BLD)\addpm.obj $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib +ddeclient: $(BLD) $(BLD)\ddeclient.exe +$(BLD)\ddeclient.obj: ddeclient.c +$(BLD)\ddeclient.exe: $(BLD)\ddeclient.obj + $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ + $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib + +cmdproxy: $(BLD) $(BLD)\cmdproxy.exe +$(BLD)\cmdproxy.obj: cmdproxy.c +$(BLD)\cmdproxy.exe: $(BLD)\cmdproxy.obj + $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \ + $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib + +addsection: $(BLD) $(BLD)\addsection.exe +$(BLD)\addsection.obj: addsection.c +$(BLD)\addsection.exe: $(BLD)\addsection.obj + $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ + $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib + +preprep: $(BLD) $(BLD)\preprep.exe +$(BLD)\preprep.obj: preprep.c +$(BLD)\preprep.exe: $(BLD)\preprep.obj + $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \ + $(SYS_LDFLAGS) $** $(BASE_LIBS) + +# +# The resource file. NT 3.10 requires the use of cvtres; even though +# it is not necessary on later versions, it is still ok to use it. +# +$(TRES): emacs.rc + $(RC) -Fo$(BLD)\emacs.res $** +!if !$(MSVCNT11) + $(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res +!endif + +runemacs: $(BLD) $(BLD)\runemacs.exe +$(BLD)\runemacs.obj: runemacs.c +$(BLD)\runemacs.exe: $(BLD)\runemacs.obj $(TRES) + $(LINK) -out:$@ -subsystem:windows -entry:WinMainCRTStartup \ + $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib + # Since Windows 95 does not support multiple commands on one command line # (e.g., in for loops), we cannot use for loops any more. # SUBDIRS = lib-src src lisp @@ -48,32 +90,57 @@ all: $(BLD) $(ALL) $(BUILD_CMD) cd ..\lisp $(BUILD_CMD) + cd ..\leim + if exist makefile.nt $(BUILD_CMD) cd ..\nt +$(INSTALL_DIR): + - mkdir $(INSTALL_DIR) + +$(INSTALL_DIR)\bin: + - mkdir $(INSTALL_DIR)\bin -emacs.bat: emacs.bat.in - echo @echo off > emacs.bat +$(INSTALL_DIR)\bin\emacs.bat: emacs.bat.in + echo @echo off > $@ echo REM !!! Warning: This file automatically generated !!! >> emacs.bat - echo set emacs_dir=$(INSTALL_DIR)>> emacs.bat - type emacs.bat.in >> emacs.bat + echo set emacs_dir=$(INSTALL_DIR)>> $@ + type emacs.bat.in >> $@ + +$(INSTALL_DIR)\bin\debug.bat: debug.bat.in + echo @echo off > $@ + echo REM !!! Warning: This file automatically generated !!! >> debug.bat + echo set emacs_dir=$(INSTALL_DIR)>> $@ + type debug.bat.in >> $@ + +batch_files: $(INSTALL_DIR) \ + $(INSTALL_DIR)\bin \ + $(INSTALL_DIR)\bin\emacs.bat \ + $(INSTALL_DIR)\bin\debug.bat # # Build and install emacs in INSTALL_DIR # INSTALL_CMD = $(MAKE) -f makefile.nt install -install: all emacs.bat - - mkdir $(INSTALL_DIR) +install: all $(INSTALL_DIR) batch_files cd ..\lib-src $(INSTALL_CMD) cd ..\src $(INSTALL_CMD) cd ..\lisp $(INSTALL_CMD) + cd ..\leim + if exist makefile.nt $(INSTALL_CMD) cd ..\nt - - $(CP) emacs.bat $(INSTALL_DIR)\bin + - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin + - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin - $(ADDPM) $(INSTALL_DIR) - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst + - mkdir $(INSTALL_DIR)\etc\icons + - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons echo SameDirTest > $(INSTALL_DIR)\same-dir.tst if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install - $(DEL) ..\same-dir.tst @@ -83,18 +150,22 @@ install: all emacs.bat # This installs executables from ..\bin into the installation directory # without building anything. # -fast_install: +fast_install: batch_files - mkdir $(INSTALL_DIR)\data $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc - mkdir $(INSTALL_DIR)\bin - - $(CP) emacs.bat $(INSTALL_DIR)\bin + - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin + - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst echo SameDirTest > $(INSTALL_DIR)\same-dir.tst if not exist ..\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin - if not exist ..\same-dir.tst nmake -f $(MAKE) real_install + if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst @@ -106,6 +177,9 @@ real_install: - mkdir $(INSTALL_DIR)\info - mkdir $(INSTALL_DIR)\lock - mkdir $(INSTALL_DIR)\data + - mkdir $(INSTALL_DIR)\site-lisp + - mkdir $(INSTALL_DIR)\etc\icons + - $(CP_DIR) icons $(INSTALL_DIR)\etc\icons if not exist ..\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc if not exist ..\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info - $(DEL) ..\same-dir.tst @@ -116,15 +190,22 @@ real_install: # CLEAN_CMD = $(MAKE) -f makefile.nt clean clean:; - $(DEL) *~ *.pdb + - $(DEL) *.orig + - $(DEL) *.rej + - $(DEL) *.crlf - $(DEL_TREE) deleted - $(DEL_TREE) obj + - $(DEL_TREE) obj-spd - $(DEL_TREE) ..\bin - $(DEL) ..\etc\DOC ..\etc\DOC-X - $(DEL) emacs.bat + - $(DEL) debug.bat cd ..\lib-src $(CLEAN_CMD) cd ..\src $(CLEAN_CMD) cd ..\lisp $(CLEAN_CMD) + cd ..\leim + if exist makefile.nt $(CLEAN_CMD) cd ..\nt