aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl Heuer1995-04-12 04:48:18 +0000
committerKarl Heuer1995-04-12 04:48:18 +0000
commit359628006351ee344a71819ff445d22163f341d8 (patch)
treef812aed7fea66de1b0187bf9ff71d352316bb611
parent61fac91166ace2b66be0506d906e3a8f3e79f62a (diff)
downloademacs-359628006351ee344a71819ff445d22163f341d8.tar.gz
emacs-359628006351ee344a71819ff445d22163f341d8.zip
Initial revision
-rw-r--r--nt/_emacs3
-rwxr-xr-xnt/ebuild.bat1
-rwxr-xr-xnt/emacs.bat18
-rwxr-xr-xnt/fast-install.bat1
-rw-r--r--nt/inc/pwd.h18
-rw-r--r--nt/inc/sys/dir.h5
-rw-r--r--nt/inc/sys/file.h5
-rw-r--r--nt/inc/sys/ioctl.h5
-rw-r--r--nt/inc/sys/param.h10
-rwxr-xr-xnt/install.bat1
-rw-r--r--nt/makefile.def90
-rw-r--r--nt/makefile.nt83
-rw-r--r--nt/paths.h46
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 @@
1;;; This is the user emacs startup file (.emacs in Unix land).
2
3(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 @@
1
2set emacs_path=\emacs
3
4@echo off
5
6set EMACSLOADPATH=%emacs_path%\lisp
7set SHELL=cmd
8set EMACSDATA=%emacs_path%\etc
9set EMACSPATH=%emacs_path%\bin
10set EMACSLOCKDIR=%emacs_path%\lock
11set INFOPATH=%emacs_path%\info
12set EMACSDOC=%emacs_path%\etc
13set TERM=CMD
14
15rem To find the ~\_emacs file
16set HOME=%emacs_path%\nt
17
18%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 @@
1#ifndef _PWD_H_
2#define _PWD_H_
3/*
4 * pwd.h doesn't exist on NT, so we put together our own.
5 */
6
7struct passwd {
8 char *pw_name;
9 char *pw_passwd;
10 int pw_uid;
11 int pw_gid;
12 int pw_quota;
13 char *pw_gecos;
14 char *pw_dir;
15 char *pw_shell;
16};
17
18#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 @@
1/*
2 * map sys\dir.h to ..\..\..\src\ndir.h
3 */
4
5#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 @@
1/*
2 * sys\file.h doesn't exist on NT...rather than including it conditionally
3 * in some of the source files, we just extend the include path so that the
4 * compiler will pick up this empty header instead.
5 */
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 @@
1/*
2 * sys\ioctl.h doesn't exist on NT...rather than including it conditionally
3 * in many of the source files, we just extend the include path so that the
4 * compiler will pick this up empty header instead.
5 */
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 @@
1#ifndef _PARAM_H_
2#define _PARAM_H_
3
4/*
5 * sys\param.h doesn't exist on NT, so we'll make one.
6 */
7
8#define NBPG 4096
9
10#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 @@
1#
2# Makefile definition file for building GNU Emacs on Windows NT
3#
4# GNU Emacs is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2, or (at your option)
7# any later version.
8#
9# GNU Emacs is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with GNU Emacs; see the file COPYING. If not, write to
16# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
17#
18# Geoff Voelker (voelker@cs.washington.edu) 9-6-94
19
20#
21# BEGIN CONFIGURATION
22#
23
24#
25# Set ARCH to the architecture on which you're building (i386, mips, alpha).
26# Set SYS_INC_DIR and SYS_LIB_DIR to your system include and library dirs.
27#
28
29ARCH = mips
30SYS_INC_DIR = C:\mstools\h
31SYS_LIB_DIR = C:\mstools\lib
32
33# Set this to be the directory into which you want emacs installed
34INSTALL_DIR = C:\emacs
35
36# May need to be cl386.exe when using the SDK on an x86.
37CC = cl.exe
38
39# May need to be lib32.exe on NT 3.1, lib.exe on NT 3.5
40AR = lib32.exe
41
42MAKE = nmake.exe
43LINK = link32.exe
44
45# If you are using VC 2.0, define COMPAT_LIB (only tested on i386)
46#COMPAT_LIB = $(SYS_LIB_DIR)\oldnames.lib
47
48#
49# END CONFIGURATION
50#
51# You shouldn't have to change any of the below to get emacs to build and
52# install on your system. If you did have to make changes, let me know.
53#
54
55INC = -I. -I$(SYS_INC_DIR) -I$(SYS_INC_DIR)\crt
56CFLAGS = -nologo $(INC) $(ARCH_CFLAGS) $(LOCAL_FLAGS) -DWIN32_LEAN_AND_MEAN -D$(ARCH)
57
58OBJDIR = obj
59$(OBJDIR):; -mkdir $(OBJDIR)
60BLD = $(OBJDIR)\$(ARCH)
61$(BLD): $(OBJDIR)
62 -mkdir $(BLD)
63
64CP = copy
65CP_DIR = xcopy /fried
66
67# This is completely braindamaged, but it's the only routine known to be there
68DEL_TREE = echo y | rmdir /s
69
70!IF "$(ARCH)" == "i386"
71ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -G3d -Zi -Od
72ARCH_LDFLAGS = -align:0x1000
73
74!ELSE
75!IF "$(ARCH)" == "mips"
76CC = mcl.exe
77ARCH_CFLAGS = -D_MIPS_=1 -c -W2 -Zi -Od -Gt0 -D__stdcall= -D__cdecl=
78ARCH_LDFLAGS = -align:0x1000
79
80!ELSE
81!IF "$(ARCH)" == "alpha"
82CC = claxp.exe
83ARCH_CFLAGS = -D_ALPHA_=1 -c -Ze -Zi -W2 -D__stdcall= -D__cdecl=
84ARCH_LDFLAGS = -align:0x2000
85
86!ELSE
87!ERROR Unknown architecture type.
88!ENDIF
89!ENDIF
90!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 @@
1#
2# Top level makefile for building GNU Emacs on Windows NT
3#
4# This file is part of GNU Emacs.
5#
6# GNU Emacs is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10#
11# GNU Emacs is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14# GNU General Public License for more details.
15#
16# You should have received a copy of the GNU General Public License
17# along with GNU Emacs; see the file COPYING. If not, write to
18# the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
19#
20# Geoff Voelker (voelker@cs.washington.edu) 11-20-93
21# 9-6-94
22!include makefile.def
23
24SUBDIRS = lib-src src lisp
25
26#
27# Build emacs
28#
29all:; for %%f in ( $(SUBDIRS) ) do cd ..\%%f & $(MAKE) -f makefile.nt all
30
31#
32# Build and install emacs in INSTALL_DIR
33#
34install: all
35 - mkdir $(INSTALL_DIR)
36 for %%f in ( $(SUBDIRS) ) do cd ..\%%f & $(MAKE) -f makefile.nt install
37 - $(CP) emacs.bat $(INSTALL_DIR)\bin
38 - del /q ..\same-dir.tst
39 - del /q $(INSTALL_DIR)\same-dir.tst
40 echo SameDirTest > ..\same-dir.tst
41 if not exist $(INSTALL_DIR)\same-dir.tst $(MAKE) -f makefile.nt real_install
42 - del /q ..\same-dir.tst
43 - del /q $(INSTALL_DIR)\same-dir.tst
44
45#
46# This installs executables from ..\bin into the installation directory
47# without building anything.
48#
49fast_install:
50 - mkdir $(INSTALL_DIR)\data
51 $(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc
52 - mkdir $(INSTALL_DIR)\bin
53 - $(CP) emacs.bat $(INSTALL_DIR)\bin
54 - del /q ..\same-dir.tst
55 - del /q $(INSTALL_DIR)\same-dir.tst
56 echo SameDirTest > ..\same-dir.tst
57 if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin
58 if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin
59 if not exist $(INSTALL_DIR)\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin
60 if not exist $(INSTALL_DIR)\same-dir.tst nmake -f $(MAKE) real_install
61 - del /q ..\same-dir.tst
62 - del /q $(INSTALL_DIR)\same-dir.tst
63
64real_install:
65 - del /q ..\same-dir.tst
66 - del /q $(INSTALL_DIR)\same-dir.tst
67 echo SameDirTest > ..\same-dir.tst
68 - mkdir $(INSTALL_DIR)\etc
69 - mkdir $(INSTALL_DIR)\info
70 - mkdir $(INSTALL_DIR)\lock
71 - mkdir $(INSTALL_DIR)\data
72 if not exist $(INSTALL_DIR)\nt\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc
73 if not exist $(INSTALL_DIR)\nt\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info
74 - del /q ..\same-dir.tst
75 - del /q $(INSTALL_DIR)\same-dir.tst
76
77#
78# Maintenance
79#
80clean:; - del /q /s *~
81 - $(DEL_TREE) deleted
82 - $(DEL_TREE) ..\bin
83 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 @@
1/* Hey Emacs, this is -*- C -*- code! */
2
3/* Backslashify the default paths for NT */
4
5/* The default search path for Lisp function "load".
6 This sets load-path. */
7/* #define PATH_LOADSEARCH "/usr/local/lib/emacs/lisp" */
8#define PATH_LOADSEARCH "C:\\emacs\\lisp"
9
10/* Like PATH_LOADSEARCH, but used only when Emacs is dumping. This
11 path is usually identical to PATH_LOADSEARCH except that the entry
12 for the directory containing the installed lisp files has been
13 replaced with ../lisp. */
14/* #define PATH_DUMPLOADSEARCH "../lisp" */
15#define PATH_DUMPLOADSEARCH "..\\..\\..\\lisp"
16
17/* The extra search path for programs to invoke. This is appended to
18 whatever the PATH environment variable says to set the Lisp
19 variable exec-path and the first file name in it sets the Lisp
20 variable exec-directory. exec-directory is used for finding
21 executables and other architecture-dependent files. */
22/* #define PATH_EXEC "/usr/local/lib/emacs/etc" */
23#define PATH_EXEC "C:\\emacs\\bin"
24
25/* Where Emacs should look for its architecture-independent data
26 files, like the NEWS file. The lisp variable data-directory
27 is set to this value. */
28/* #define PATH_DATA "/usr/local/lib/emacs/data" */
29#define PATH_DATA "C:\\emacs\\data"
30
31/* Where Emacs should look for its docstring file. The lisp variable
32 doc-directory is set to this value. */
33#define PATH_DOC "C:\\emacs\\etc"
34
35/* The name of the directory that contains lock files with which we
36 record what files are being modified in Emacs. This directory
37 should be writable by everyone. THE STRING MUST END WITH A
38 SLASH!!! */
39/* #define PATH_LOCK "/usr/local/lib/emacs/lock/" */
40#define PATH_LOCK "C:\\emacs\\lock\\"
41
42/* Where the configuration process believes the info tree lives. The
43 lisp variable configure-info-directory gets its value from this
44 macro, and is then used to set the Info-default-directory-list. */
45/* #define PATH_INFO "/usr/local/info" */
46#define PATH_INFO "C:\\emacs\\info"