aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian Robert2008-07-17 18:28:58 +0000
committerAdrian Robert2008-07-17 18:28:58 +0000
commit4537179d4606df6d4258b067cec2bf1b8fff5365 (patch)
tree2001a3fdcb53a5fcee08799d7adbaeace75c89a6
parent2a7973b62722e292302d6c03200771d33cb890bf (diff)
downloademacs-4537179d4606df6d4258b067cec2bf1b8fff5365.tar.gz
emacs-4537179d4606df6d4258b067cec2bf1b8fff5365.zip
make more parallel to other platforms
-rw-r--r--nextstep/ChangeLog9
-rw-r--r--nextstep/FOR-RELEASE22
-rw-r--r--nextstep/INSTALL77
-rw-r--r--nextstep/README (renamed from nextstep/README.txt)55
-rwxr-xr-xnextstep/compile243
5 files changed, 101 insertions, 305 deletions
diff --git a/nextstep/ChangeLog b/nextstep/ChangeLog
index 6909f6a29f4..e1edcbba2a1 100644
--- a/nextstep/ChangeLog
+++ b/nextstep/ChangeLog
@@ -1,4 +1,13 @@
12008-07-17 Adrian Robert <Adrian.B.Robert@gmail.com>
2
3 * README.txt
4 * compile: Remove.
5 * README
6 * INSTALL: New files.
7 * FOR_RELEASE: Updated.
8
12008-07-15 Adrian Robert <Adrian.B.Robert@gmail.com> 92008-07-15 Adrian Robert <Adrian.B.Robert@gmail.com>
10
2 * Cocoa/Contents/Resources/Credits.html: Change URL from sf.net to 11 * Cocoa/Contents/Resources/Credits.html: Change URL from sf.net to
3 GNU.org. 12 GNU.org.
4 13
diff --git a/nextstep/FOR-RELEASE b/nextstep/FOR-RELEASE
index 39be79946b0..d02837b0b7d 100644
--- a/nextstep/FOR-RELEASE
+++ b/nextstep/FOR-RELEASE
@@ -3,7 +3,8 @@
3* BUGS 3* BUGS
4* NON-SPECIFIC 4* NON-SPECIFIC
5 5
6** Find out why char_quoted() in syntax.c gets called with Fix char_quoted's workaround. 6** Find out why char_quoted() in syntax.c gets called with charpos < 2 ||
7 bytepos < 2 only under NS port.
7 8
8** Remove Feval calls relating to insert working text in isearch mode. 9** Remove Feval calls relating to insert working text in isearch mode.
9 10
@@ -13,6 +14,9 @@
13 14
14** config improvements (Dan C.) 15** config improvements (Dan C.)
15 16
17** numeric keysetting bug
18
19
16* Mac-related: 20* Mac-related:
17 21
18** open file:/// URLs 22** open file:/// URLs
@@ -30,8 +34,9 @@
30 34
31* Cursor: 35* Cursor:
32 36
33** ns_cursor_blink_rate: when set in preferences, somehow save the option (but 37** ns_cursor_blink_rate: change to use generic code; also, when set in
34 calling custom-save-all from this causes error) 38 preferences, somehow save the option (but calling custom-save-all
39 from this causes error)
35 40
36** cursor nonerase on certain Leopard and Tiger installations 41** cursor nonerase on certain Leopard and Tiger installations
37 42
@@ -41,17 +46,6 @@
41** cursor-over bugs w/some scripts (move around in HELLO to see) 46** cursor-over bugs w/some scripts (move around in HELLO to see)
42 47
43 48
44Keyboard:
45
46On a German (PowerBook?) keyboard alt-` produces the correct ˚, without alt modifier only the message “<S-268632064> is undefined” is produced. Peter Maurer’s Key codes shows:
47 * Modifier Change: ⇧ 131330/0x20102
48 * Key Down/Up event: ⇧ 24/0x18
49[note, this is += key on German KB setting on US keyboard]
50[unable to reproduce w/German KB setting -- need German laptop?]
51
52** numeric keysetting bug
53
54
55* Other: 49* Other:
56 50
57** better recog of unicode scripts / Greek / composition 51** better recog of unicode scripts / Greek / composition
diff --git a/nextstep/INSTALL b/nextstep/INSTALL
new file mode 100644
index 00000000000..360c57f18ff
--- /dev/null
+++ b/nextstep/INSTALL
@@ -0,0 +1,77 @@
1Copyright (C) 2008 Free Software Foundation, Inc.
2See the end of the file for license conditions.
3
4
5Compilation
6-----------
7
8In the top-level directory, use:
9
10 ./configure --with-ns
11 make -j2
12
13Make the -j higher on multi-core systems, usually one higher than number of
14cores is best.
15
16This will compile all the files, but emacs will not be able to be run except
17in -nw (terminal) mode.
18
19In order to run Emacs.app, you must run:
20
21 make install
22
23This will assemble the app in nextstep/Emacs.app.
24
25If you pass the --disable-ns-self-contained option to configure, the lisp
26files will be installed under whatever 'prefix' is set to (defaults to
27/usr/local). The bundle will be smaller, but depend on these resources (may
28require 'sudo' for "make install").
29
30On OS X you can also open Cocoa/Emacs.xcodeproj and build it again there. You
31may need to set some directories. (Note, ZeroLink currently does not work
32with Emacs owing to the use of private_extern in the code as well as some
33other, unidentifiable problem.) Before doing this you must run "make install"
34once as outlined above, to set up the lisp resources.
35
36On GNUstep, you CAN'T use ProjectCenter, since PC cannot work with files
37outside of its project directory.
38
39
40Installation
41------------
42
43Move nextstep/Emacs.app to any desired install location.
44
45
46Distributions and Universal Binaries
47------------------------------------
48
49Building as outlined above will create ordinary binaries running on your
50architecture only. To create universal binaries, set CFLAGS to include
51"-arch ppc -arch i386".
52
53
54Improve Ctrl-G Handling
55-----------------------
56
57To enable a version of the code that handles ctrl-g more responsively in
58certain cases -- but may introduce other glitches -- pass
59"--enable-cocoa-experimental-ctrl-g" to configure.
60
61
62
63
64This file is part of GNU Emacs.
65
66GNU Emacs is free software: you can redistribute it and/or modify
67it under the terms of the GNU General Public License as published by
68the Free Software Foundation, either version 3 of the License, or
69(at your option) any later version.
70
71GNU Emacs is distributed in the hope that it will be useful,
72but WITHOUT ANY WARRANTY; without even the implied warranty of
73MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
74GNU General Public License for more details.
75
76You should have received a copy of the GNU General Public License
77along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
diff --git a/nextstep/README.txt b/nextstep/README
index f30b488d851..0fe2acfc907 100644
--- a/nextstep/README.txt
+++ b/nextstep/README
@@ -4,11 +4,12 @@ See the end of the file for license conditions.
4Emacs.app 4Emacs.app
5========= 5=========
6 6
7This file introduces the NeXTstep-based port of GNU Emacs, known as Emacs.app, 7This file introduces the NeXTstep-based port of GNU Emacs, known as
8 which runs on on many POSIX systems and possibly W32 using the GNUstep 8Emacs.app, which runs on on many POSIX systems and possibly W32 using
9 libraries and on MacOS X systems using the Cocoa libraries. The directory 9the GNUstep libraries and on MacOS X systems using the Cocoa
10 "nextstep" and its subdirectories "Cocoa" and "GNUstep" contain files 10libraries. The directory "nextstep" and its subdirectories "Cocoa"
11 relevant to building and running on these systems. 11and "GNUstep" contain files relevant to building and running on these
12systems.
12 13
13Those primarily responsible for the port (in chronological order) were: 14Those primarily responsible for the port (in chronological order) were:
14 15
@@ -45,25 +46,7 @@ tweaking.
45Compilation 46Compilation
46----------- 47-----------
47 48
48Run "./compile" in this directory, which will create a self-contained 49See INSTALL.
49Emacs.app under 'build/'. This can be moved anywhere and run. To create a
50shared-lisp build, do "sudo ./compile -shared <install_root>". Set
51<install_root> to where the lisp will go, for example /usr/local to end up
52with /usr/local/shared/emacs/...
53
54See the script itself for further details, and customizations.
55
56You can rerun configure and/or run 'make' manually in the top-level or src
57directories to refresh nextstep/build/Emacs.app. (Or edit the "compile"
58script.)
59
60On OS X you can also open Cocoa/Emacs.xcodeproj and build it again there. (Note,
61ZeroLink currently does not work with Emacs owing to the use of private_extern
62in the code as well as some other, unidentifiable problem.) Before doing this
63you must run 'compile' once as outlined above, to set up the lisp resources.
64
65On GNUstep, you CAN'T use ProjectCenter, since PC cannot work with files
66outside of its project directory.
67 50
68 51
69Usage 52Usage
@@ -100,30 +83,6 @@ and was successively updated to OpenStep, Rhapsody, OS X, and then finally
100GNUstep, tracking GNU emacs core releases in the meantime. 83GNUstep, tracking GNU emacs core releases in the meantime.
101 84
102 85
103Files specific to the port
104--------------------------
105
106src/nsfns.m
107src/nsfont.m
108src/nsgui.h
109src/nsimage.m
110src/nsmenu.m
111src/nsselect.m
112src/nsterm.h
113src/nsterm.m
114lisp/ns-grabenv.el
115lisp/ns-carbon-compat.el
116lisp/term/ns-win.el
117lib-src/mac-fix-env.m
118doc/emacs/ns-emacs.texi
119etc/Emacs.clr
120nextstep/
121
122
123Files modified for port:
124
125many -- look for HAVE_NS / NS_IMPL_... #ifdefs
126
127 86
128Release History 87Release History
129--------------- 88---------------
diff --git a/nextstep/compile b/nextstep/compile
deleted file mode 100755
index 5e84d8c0c0f..00000000000
--- a/nextstep/compile
+++ /dev/null
@@ -1,243 +0,0 @@
1#!/bin/sh
2
3# Copyright (C) 2008 Free Software Foundation, Inc.
4
5# This file is part of GNU Emacs.
6
7# GNU Emacs is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as published by
9# the Free Software Foundation, either version 3 of the License, or
10# (at your option) any later version.
11
12# GNU Emacs is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16
17# You should have received a copy of the GNU General Public License
18# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19
20
21# This script configures and builds Emacs to the subdirectory ./build .
22#
23# If --shared-lisp 'install_prefix' is given, lisp files will be installed to
24# install_prefix/share/emacs/23.0.0. This option must be run with 'sudo'.
25#
26# Otherwise (default) lisp will be installed under Emacs.app/Contents/Resources.
27# It does this by configuring it to install there, and running "make install".
28#
29# Some setup is different for GNUstep vs. Cocoa, and it determines which one
30# it's on using 'uname'.
31
32# After it is run, Emacs can be run directly from the .app, which itself
33# can be placed anywhere.
34
35# Further C development can be done using Xcode on OS X (not tested recently),
36# or by typing './remake' in the '../src' directory. Further Lisp
37# development can be done by either copying the files you modify
38# into install location, or running this script again.
39
40
41# Set up path and config variables.
42
43PREFIX=""
44while [ $# -gt 0 ]; do
45 case "$1" in
46 --shared-lisp=*)
47 PREFIX=`echo "$1" | sed s/--shared-lisp=//`
48 shift
49 ;;
50 --enable-local-lisp-path=*)
51 locallisppath=`echo "$1" | sed s/--enable-local-lisp-path=//`
52 shift
53 ;;
54 *)
55 echo "Usage: $0 [--shared-lisp='install_root' --enable-local-lisp-path='some path(s)']"
56 exit
57 esac
58done
59
60DISTDIR=`pwd`/..
61
62#OPTFLAGS='-g -O2'
63OPTFLAGS='-g'
64
65# MAC OS X
66if [ `uname` == "Darwin" ]; then
67 BASEDIR=`pwd`/build/Emacs.app/Contents
68 BINDIR=${BASEDIR}/MacOS
69 if [ "x$PREFIX" == "x" ]; then
70 PREFIX=${BASEDIR}/Resources
71 fi
72# If you want to try experimental enhanced Ctrl-g support, add to NS_CFG_OPTS:
73# --enable-cocoa-experimental-ctrl-g
74# (See bottom of USAGE.txt)
75 NS_CFG_OPTS="--with-ns --without-x --without-freetype --prefix=${PREFIX} --exec_prefix=${BASEDIR}/MacOS --libexecdir=${BASEDIR}/MacOS/libexec"
76# --enable-cocoa-experimental-ctrl-g"
77# MAKE="make -j3"
78 steve=`/usr/sbin/sysctl hw.ncpu | awk '{print $NF}'`
79 MAKE="make -j`expr $steve + 1`"
80 export CC=gcc-4.0
81 export MACOSX_DEPLOYMENT_TARGET=10.3
82 export MACOSX_DEPLOYMENT_TARGET_ppc=10.3
83 export MACOSX_DEPLOYMENT_TARGET_i386=10.4
84 export CFLAGS="$OPTFLAGS -arch ppc -arch i386"
85# -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk
86# -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
87
88# GNUSTEP
89else
90
91 # Currently must pass three dirs into Make process via environment variables.
92 source /etc/GNUstep/GNUstep.conf
93 if [ "x$GNUSTEP_MAKEFILES" == "x" ]; then
94 if [ "x$GNUSTEP_SYSTEM_ROOT" == "x" ]; then
95 echo "Failed to obtain any useful information from /etc/GNUstep/GNUstep.conf."
96 echo "Please make sure GNUstep is installed on your system."
97 exit
98 fi
99 GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles
100 GNUSTEP_SYSTEM_HEADERS=${GNUSTEP_SYSTEM_ROOT}/Library/Headers
101 GNUSTEP_SYSTEM_LIBRARIES=${GNUSTEP_SYSTEM_ROOT}/Library/Libraries
102 fi
103 export GNUSTEP_MAKEFILES
104 export GNUSTEP_SYSTEM_HEADERS
105 export GNUSTEP_SYSTEM_LIBRARIES
106
107 BASEDIR=`pwd`/build/Emacs.app
108 BINDIR=${BASEDIR}
109 if [ "x${PREFIX}" == "x" ]; then
110 PREFIX=${BASEDIR}/Resources
111 fi
112 NS_CFG_OPTS="--with-ns --without-x --without-freetype --prefix=${PREFIX} --exec-prefix=${BASEDIR} --libexecdir=${BASEDIR}/libexec"
113# --enable-cocoa-experimental-ctrl-g
114
115 if [ "x$MAKE" == "x" ]; then
116 if [ "`gmake 2>&1`" == "gmake: *** No targets specified and no makefile found. Stop." ]; then
117 MAKE=gmake
118 else
119 MAKE=make
120 fi
121 export MAKE
122 CFLAGS="$OPTFLAGS"
123 export CFLAGS
124 fi
125
126# PENDING: Not sure why this is needed
127 export EMACSLOADPATH="${DISTDIR}/lisp:${DISTDIR}/lisp/emacs-lisp:${DISTDIR}/leim"
128fi
129
130# End variable setup.
131###############################################################################
132
133# Prepare a clean slate
134rm -fr build/Emacs.app
135
136# Configure if needed
137cd ..
138if [ ! -f Makefile ]; then
139 echo "./configure ${NS_CFG_OPTS}"
140./configure <<EOF ${NS_CFG_OPTS}
141EOF
142# ./configure ${NS_CFG_OPTS}
143 if [ $? != 0 ]; then
144 echo "*** Configure run failed. ***"
145 echo "Please examine the above output to determine what went wrong,"
146 echo "edit this script (\'compile\') to fix it, and rerun."
147 # These are written BEFORE the job is compete, then it won't get done
148 # next time, causing errors about CTLau-b5, tsang-b5, PY, etc..
149 rm -f leim/changed.misc leim/changed.tit
150 exit 1
151 fi
152fi
153
154# Pete's addition for local lisp load-path
155if [ "x$locallisppath" != "x" ]; then
156 echo " * Local lisp path is being enabled"
157 (cd src
158 if [ -r epaths.h-orig ]; then
159# mv ../src/epaths.h-orig ../src/epaths.h
160 echo "### src/epaths.h-orig already exists, no further change ###"
161 else
162 mv epaths.h epaths.h-orig
163 printf "s,\(#define PATH_LOADSEARCH \"\),\\\1%s:,\n" "$
164{locallisppath}" > locallisppath.sed
165 cat epaths.h-orig | sed -f locallisppath.sed > epaths.h
166 rm locallisppath.sed
167 fi)
168fi
169
170# Clean up to avoid DOC-xxx and emacs-xxx out-of-controlness
171rm -f ../etc/DOC-* ../src/emacs-*
172
173
174# Go (installs binaries to ./build/Emacs.app, lisp to there or PREFIX)
175echo "make install"
176$MAKE
177status=$?
178
179if [ -f src/epaths.h-orig ]; then
180 mv src/epaths.h-orig src/epaths.h
181fi
182
183if [ $status != 0 ]; then
184 echo "*** Compilation failed. ***"
185 echo "Please examine the above output to determine what went wrong,"
186 echo "edit the configure options in this script (\'compile\') to fix it, and rerun."
187# rm -f leim/changed.misc leim/changed.tit
188 exit 1
189fi
190
191$MAKE install
192if [ $? != 0 ]; then
193 echo "*** Compilation succeeded, but .app assembly failed. ***"
194 echo "Please examine the above output to determine what went wrong,"
195 echo "edit the configure options in this script (\'compile\') to fix it, and rerun."
196# rm -f leim/changed.misc leim/changed.tit
197 exit 1
198fi
199
200# Move version stuff up to Resources
201cd ${BASEDIR}/Resources
202if [ -d share/emacs ]; then
203 # clean up self-contained build
204 mv -f share/emacs/*/* .
205fi
206
207if [ ! -d info ]; then
208 # happens on GNUstep, not OS X
209 mv -f share/info .
210fi
211rm -fr share
212
213# Get rid of .el.gz when .elc is present.. purists will complain, but this
214# knocks the app size down substantially.
215cd lisp
216#for f in `find . -name '*.elc' -print | sed -e s/.elc/.{el,el.gz}/`
217#do
218# rm -f $f
219#done
220
221# Bin cleanup
222cd $BINDIR/bin
223rm -f emacs emacs-23*
224
225# Move libexec stuff up, and link it from bin
226cd ../libexec
227mv -f emacs/*/*/* .
228rm -fr emacs
229cd ../bin
230ln -sf ../libexec/* .
231
232# On OS X, install the bundled ispell
233#if [ `uname` == "Darwin" ]; then
234# cd $DISTDIR
235# cp ispell-3.3.01/bin/ispell* ${BINDIR}/libexec
236# cp -R ispell-3.3.01/lib ${BINDIR}/libexec
237#fi
238
239echo ""
240echo "Build successful."
241echo ""
242
243# arch-tag: 1fda51a1-d908-4e60-ad5e-47ffbb39f18d