diff options
-rw-r--r-- | nt/_emacs | 3 | ||||
-rwxr-xr-x | nt/ebuild.bat | 1 | ||||
-rwxr-xr-x | nt/emacs.bat | 18 | ||||
-rwxr-xr-x | nt/fast-install.bat | 1 | ||||
-rw-r--r-- | nt/inc/pwd.h | 18 | ||||
-rw-r--r-- | nt/inc/sys/dir.h | 5 | ||||
-rw-r--r-- | nt/inc/sys/file.h | 5 | ||||
-rw-r--r-- | nt/inc/sys/ioctl.h | 5 | ||||
-rw-r--r-- | nt/inc/sys/param.h | 10 | ||||
-rwxr-xr-x | nt/install.bat | 1 | ||||
-rw-r--r-- | nt/makefile.def | 90 | ||||
-rw-r--r-- | nt/makefile.nt | 83 | ||||
-rw-r--r-- | nt/paths.h | 46 |
13 files changed, 286 insertions, 0 deletions
diff --git a/nt/_emacs b/nt/_emacs new file mode 100644 index 00000000000..79f01b86d3b --- /dev/null +++ b/nt/_emacs @@ -0,0 +1,3 @@ +;;; This is the user emacs startup file (.emacs in Unix land).
+
+(put 'eval-expression 'disabled nil)
diff --git a/nt/ebuild.bat b/nt/ebuild.bat new file mode 100755 index 00000000000..32cea5af9fa --- /dev/null +++ b/nt/ebuild.bat @@ -0,0 +1 @@ +nmake -f makefile.nt all
diff --git a/nt/emacs.bat b/nt/emacs.bat new file mode 100755 index 00000000000..c822617d4f2 --- /dev/null +++ b/nt/emacs.bat @@ -0,0 +1,18 @@ +
+set emacs_path=\emacs
+
+@echo off
+
+set EMACSLOADPATH=%emacs_path%\lisp
+set SHELL=cmd
+set EMACSDATA=%emacs_path%\etc
+set EMACSPATH=%emacs_path%\bin
+set EMACSLOCKDIR=%emacs_path%\lock
+set INFOPATH=%emacs_path%\info
+set EMACSDOC=%emacs_path%\etc
+set TERM=CMD
+
+rem To find the ~\_emacs file
+set HOME=%emacs_path%\nt
+
+%emacs_path%\bin\emacs.exe %1 %2 %3 %4 %5 %6 %7 %8 %9
diff --git a/nt/fast-install.bat b/nt/fast-install.bat new file mode 100755 index 00000000000..157c4ab8751 --- /dev/null +++ b/nt/fast-install.bat @@ -0,0 +1 @@ +nmake -f makefile.nt fast_install
diff --git a/nt/inc/pwd.h b/nt/inc/pwd.h new file mode 100644 index 00000000000..2361d52248c --- /dev/null +++ b/nt/inc/pwd.h @@ -0,0 +1,18 @@ +#ifndef _PWD_H_
+#define _PWD_H_
+/*
+ * pwd.h doesn't exist on NT, so we put together our own.
+ */
+
+struct passwd {
+ char *pw_name;
+ char *pw_passwd;
+ int pw_uid;
+ int pw_gid;
+ int pw_quota;
+ char *pw_gecos;
+ char *pw_dir;
+ char *pw_shell;
+};
+
+#endif /* _PWD_H_ */
diff --git a/nt/inc/sys/dir.h b/nt/inc/sys/dir.h new file mode 100644 index 00000000000..203e27f2fe7 --- /dev/null +++ b/nt/inc/sys/dir.h @@ -0,0 +1,5 @@ +/* + * map sys\dir.h to ..\..\..\src\ndir.h + */ + +#include "..\..\..\src\ndir.h" diff --git a/nt/inc/sys/file.h b/nt/inc/sys/file.h new file mode 100644 index 00000000000..698dc7861c9 --- /dev/null +++ b/nt/inc/sys/file.h @@ -0,0 +1,5 @@ +/*
+ * sys\file.h doesn't exist on NT...rather than including it conditionally
+ * in some of the source files, we just extend the include path so that the
+ * compiler will pick up this empty header instead.
+ */
diff --git a/nt/inc/sys/ioctl.h b/nt/inc/sys/ioctl.h new file mode 100644 index 00000000000..5294e1b5f85 --- /dev/null +++ b/nt/inc/sys/ioctl.h @@ -0,0 +1,5 @@ +/*
+ * sys\ioctl.h doesn't exist on NT...rather than including it conditionally
+ * in many of the source files, we just extend the include path so that the
+ * compiler will pick this up empty header instead.
+ */
diff --git a/nt/inc/sys/param.h b/nt/inc/sys/param.h new file mode 100644 index 00000000000..b7f227405f4 --- /dev/null +++ b/nt/inc/sys/param.h @@ -0,0 +1,10 @@ +#ifndef _PARAM_H_
+#define _PARAM_H_
+
+/*
+ * sys\param.h doesn't exist on NT, so we'll make one.
+ */
+
+#define NBPG 4096
+
+#endif /* _PARAM_H_ */
diff --git a/nt/install.bat b/nt/install.bat new file mode 100755 index 00000000000..997702b34ca --- /dev/null +++ b/nt/install.bat @@ -0,0 +1 @@ +nmake -f makefile.nt install
diff --git a/nt/makefile.def b/nt/makefile.def new file mode 100644 index 00000000000..57277b0ba61 --- /dev/null +++ b/nt/makefile.def @@ -0,0 +1,90 @@ +#
+# Makefile definition file for building GNU Emacs on Windows NT
+#
+# 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 2, 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; see the file COPYING. If not, write to
+# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+#
+# Geoff Voelker (voelker@cs.washington.edu) 9-6-94
+
+#
+# BEGIN CONFIGURATION
+#
+
+#
+# Set ARCH to the architecture on which you're building (i386, mips, alpha).
+# Set SYS_INC_DIR and SYS_LIB_DIR to your system include and library dirs.
+#
+
+ARCH = mips
+SYS_INC_DIR = C:\mstools\h
+SYS_LIB_DIR = C:\mstools\lib
+
+# Set this to be the directory into which you want emacs installed
+INSTALL_DIR = C:\emacs
+
+# May need to be cl386.exe when using the SDK on an x86.
+CC = cl.exe
+
+# May need to be lib32.exe on NT 3.1, lib.exe on NT 3.5
+AR = lib32.exe
+
+MAKE = nmake.exe
+LINK = link32.exe
+
+# If you are using VC 2.0, define COMPAT_LIB (only tested on i386)
+#COMPAT_LIB = $(SYS_LIB_DIR)\oldnames.lib
+
+#
+# END CONFIGURATION
+#
+# You shouldn't have to change any of the below to get emacs to build and
+# install on your system. If you did have to make changes, let me know.
+#
+
+INC = -I. -I$(SYS_INC_DIR) -I$(SYS_INC_DIR)\crt
+CFLAGS = -nologo $(INC) $(ARCH_CFLAGS) $(LOCAL_FLAGS) -DWIN32_LEAN_AND_MEAN -D$(ARCH)
+
+OBJDIR = obj
+$(OBJDIR):; -mkdir $(OBJDIR)
+BLD = $(OBJDIR)\$(ARCH)
+$(BLD): $(OBJDIR)
+ -mkdir $(BLD)
+
+CP = copy
+CP_DIR = xcopy /fried
+
+# This is completely braindamaged, but it's the only routine known to be there
+DEL_TREE = echo y | rmdir /s
+
+!IF "$(ARCH)" == "i386"
+ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -G3d -Zi -Od
+ARCH_LDFLAGS = -align:0x1000
+
+!ELSE
+!IF "$(ARCH)" == "mips"
+CC = mcl.exe
+ARCH_CFLAGS = -D_MIPS_=1 -c -W2 -Zi -Od -Gt0 -D__stdcall= -D__cdecl=
+ARCH_LDFLAGS = -align:0x1000
+
+!ELSE
+!IF "$(ARCH)" == "alpha"
+CC = claxp.exe
+ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -D__stdcall= -D__cdecl=
+ARCH_LDFLAGS = -align:0x2000
+
+!ELSE
+!ERROR Unknown architecture type.
+!ENDIF
+!ENDIF
+!ENDIF
diff --git a/nt/makefile.nt b/nt/makefile.nt new file mode 100644 index 00000000000..6dbf61e16e6 --- /dev/null +++ b/nt/makefile.nt @@ -0,0 +1,83 @@ +#
+# Top level makefile for building GNU Emacs on Windows NT
+#
+# 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 2, 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; see the file COPYING. If not, write to
+# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+#
+# Geoff Voelker (voelker@cs.washington.edu) 11-20-93
+# 9-6-94
+!include makefile.def
+
+SUBDIRS = lib-src src lisp
+
+#
+# Build emacs
+#
+all:; for %%f in ( $(SUBDIRS) ) do cd ..\%%f & $(MAKE) -f makefile.nt all
+
+#
+# Build and install emacs in INSTALL_DIR
+#
+install: all
+ - mkdir $(INSTALL_DIR)
+ for %%f in ( $(SUBDIRS) ) do cd ..\%%f & $(MAKE) -f makefile.nt install
+ - $(CP) emacs.bat $(INSTALL_DIR)\bin
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+ echo SameDirTest > ..\same-dir.tst
+ if not exist $(INSTALL_DIR)\same-dir.tst $(MAKE) -f makefile.nt real_install
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+
+#
+# This installs executables from ..\bin into the installation directory
+# without building anything.
+#
+fast_install:
+ - mkdir $(INSTALL_DIR)\data
+ $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc
+ - mkdir $(INSTALL_DIR)\bin
+ - $(CP) emacs.bat $(INSTALL_DIR)\bin
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+ echo SameDirTest > ..\same-dir.tst
+ if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin
+ if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin
+ if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin
+ if not exist $(INSTALL_DIR)\same-dir.tst nmake -f $(MAKE) real_install
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+
+real_install:
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+ echo SameDirTest > ..\same-dir.tst
+ - mkdir $(INSTALL_DIR)\etc
+ - mkdir $(INSTALL_DIR)\info
+ - mkdir $(INSTALL_DIR)\lock
+ - mkdir $(INSTALL_DIR)\data
+ if not exist $(INSTALL_DIR)\nt\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc
+ if not exist $(INSTALL_DIR)\nt\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info
+ - del /q ..\same-dir.tst
+ - del /q $(INSTALL_DIR)\same-dir.tst
+
+#
+# Maintenance
+#
+clean:; - del /q /s *~
+ - $(DEL_TREE) deleted
+ - $(DEL_TREE) ..\bin
+ for %%f in ( $(SUBDIRS) ) do cd ..\%%f & $(MAKE) -f makefile.nt clean
diff --git a/nt/paths.h b/nt/paths.h new file mode 100644 index 00000000000..9269bd4f576 --- /dev/null +++ b/nt/paths.h @@ -0,0 +1,46 @@ +/* Hey Emacs, this is -*- C -*- code! */
+
+/* Backslashify the default paths for NT */
+
+/* The default search path for Lisp function "load".
+ This sets load-path. */
+/* #define PATH_LOADSEARCH "/usr/local/lib/emacs/lisp" */
+#define PATH_LOADSEARCH "C:\\emacs\\lisp"
+
+/* Like PATH_LOADSEARCH, but used only when Emacs is dumping. This
+ path is usually identical to PATH_LOADSEARCH except that the entry
+ for the directory containing the installed lisp files has been
+ replaced with ../lisp. */
+/* #define PATH_DUMPLOADSEARCH "../lisp" */
+#define PATH_DUMPLOADSEARCH "..\\..\\..\\lisp"
+
+/* The extra search path for programs to invoke. This is appended to
+ whatever the PATH environment variable says to set the Lisp
+ variable exec-path and the first file name in it sets the Lisp
+ variable exec-directory. exec-directory is used for finding
+ executables and other architecture-dependent files. */
+/* #define PATH_EXEC "/usr/local/lib/emacs/etc" */
+#define PATH_EXEC "C:\\emacs\\bin"
+
+/* Where Emacs should look for its architecture-independent data
+ files, like the NEWS file. The lisp variable data-directory
+ is set to this value. */
+/* #define PATH_DATA "/usr/local/lib/emacs/data" */
+#define PATH_DATA "C:\\emacs\\data"
+
+/* Where Emacs should look for its docstring file. The lisp variable
+ doc-directory is set to this value. */
+#define PATH_DOC "C:\\emacs\\etc"
+
+/* The name of the directory that contains lock files with which we
+ record what files are being modified in Emacs. This directory
+ should be writable by everyone. THE STRING MUST END WITH A
+ SLASH!!! */
+/* #define PATH_LOCK "/usr/local/lib/emacs/lock/" */
+#define PATH_LOCK "C:\\emacs\\lock\\"
+
+/* Where the configuration process believes the info tree lives. The
+ lisp variable configure-info-directory gets its value from this
+ macro, and is then used to set the Info-default-directory-list. */
+/* #define PATH_INFO "/usr/local/info" */
+#define PATH_INFO "C:\\emacs\\info"
|