make more parallel to other platforms
This commit is contained in:
parent
2a7973b627
commit
4537179d46
5 changed files with 101 additions and 305 deletions
|
@ -1,4 +1,13 @@
|
|||
2008-07-17 Adrian Robert <Adrian.B.Robert@gmail.com>
|
||||
|
||||
* README.txt
|
||||
* compile: Remove.
|
||||
* README
|
||||
* INSTALL: New files.
|
||||
* FOR_RELEASE: Updated.
|
||||
|
||||
2008-07-15 Adrian Robert <Adrian.B.Robert@gmail.com>
|
||||
|
||||
* Cocoa/Contents/Resources/Credits.html: Change URL from sf.net to
|
||||
GNU.org.
|
||||
|
||||
|
|
|
@ -3,7 +3,8 @@
|
|||
* BUGS
|
||||
* NON-SPECIFIC
|
||||
|
||||
** Find out why char_quoted() in syntax.c gets called with Fix char_quoted's workaround.
|
||||
** Find out why char_quoted() in syntax.c gets called with charpos < 2 ||
|
||||
bytepos < 2 only under NS port.
|
||||
|
||||
** Remove Feval calls relating to insert working text in isearch mode.
|
||||
|
||||
|
@ -13,6 +14,9 @@
|
|||
|
||||
** config improvements (Dan C.)
|
||||
|
||||
** numeric keysetting bug
|
||||
|
||||
|
||||
* Mac-related:
|
||||
|
||||
** open file:/// URLs
|
||||
|
@ -30,8 +34,9 @@
|
|||
|
||||
* Cursor:
|
||||
|
||||
** ns_cursor_blink_rate: when set in preferences, somehow save the option (but
|
||||
calling custom-save-all from this causes error)
|
||||
** ns_cursor_blink_rate: change to use generic code; also, when set in
|
||||
preferences, somehow save the option (but calling custom-save-all
|
||||
from this causes error)
|
||||
|
||||
** cursor nonerase on certain Leopard and Tiger installations
|
||||
|
||||
|
@ -41,17 +46,6 @@
|
|||
** cursor-over bugs w/some scripts (move around in HELLO to see)
|
||||
|
||||
|
||||
Keyboard:
|
||||
|
||||
On 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:
|
||||
* Modifier Change: ⇧ 131330/0x20102
|
||||
* Key Down/Up event: ⇧ 24/0x18
|
||||
[note, this is += key on German KB setting on US keyboard]
|
||||
[unable to reproduce w/German KB setting -- need German laptop?]
|
||||
|
||||
** numeric keysetting bug
|
||||
|
||||
|
||||
* Other:
|
||||
|
||||
** better recog of unicode scripts / Greek / composition
|
||||
|
|
77
nextstep/INSTALL
Normal file
77
nextstep/INSTALL
Normal file
|
@ -0,0 +1,77 @@
|
|||
Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
See the end of the file for license conditions.
|
||||
|
||||
|
||||
Compilation
|
||||
-----------
|
||||
|
||||
In the top-level directory, use:
|
||||
|
||||
./configure --with-ns
|
||||
make -j2
|
||||
|
||||
Make the -j higher on multi-core systems, usually one higher than number of
|
||||
cores is best.
|
||||
|
||||
This will compile all the files, but emacs will not be able to be run except
|
||||
in -nw (terminal) mode.
|
||||
|
||||
In order to run Emacs.app, you must run:
|
||||
|
||||
make install
|
||||
|
||||
This will assemble the app in nextstep/Emacs.app.
|
||||
|
||||
If you pass the --disable-ns-self-contained option to configure, the lisp
|
||||
files will be installed under whatever 'prefix' is set to (defaults to
|
||||
/usr/local). The bundle will be smaller, but depend on these resources (may
|
||||
require 'sudo' for "make install").
|
||||
|
||||
On OS X you can also open Cocoa/Emacs.xcodeproj and build it again there. You
|
||||
may need to set some directories. (Note, ZeroLink currently does not work
|
||||
with Emacs owing to the use of private_extern in the code as well as some
|
||||
other, unidentifiable problem.) Before doing this you must run "make install"
|
||||
once as outlined above, to set up the lisp resources.
|
||||
|
||||
On GNUstep, you CAN'T use ProjectCenter, since PC cannot work with files
|
||||
outside of its project directory.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Move nextstep/Emacs.app to any desired install location.
|
||||
|
||||
|
||||
Distributions and Universal Binaries
|
||||
------------------------------------
|
||||
|
||||
Building as outlined above will create ordinary binaries running on your
|
||||
architecture only. To create universal binaries, set CFLAGS to include
|
||||
"-arch ppc -arch i386".
|
||||
|
||||
|
||||
Improve Ctrl-G Handling
|
||||
-----------------------
|
||||
|
||||
To enable a version of the code that handles ctrl-g more responsively in
|
||||
certain cases -- but may introduce other glitches -- pass
|
||||
"--enable-cocoa-experimental-ctrl-g" to configure.
|
||||
|
||||
|
||||
|
||||
|
||||
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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
|
@ -4,11 +4,12 @@ See the end of the file for license conditions.
|
|||
Emacs.app
|
||||
=========
|
||||
|
||||
This file introduces the NeXTstep-based port of GNU Emacs, known as Emacs.app,
|
||||
which runs on on many POSIX systems and possibly W32 using the GNUstep
|
||||
libraries and on MacOS X systems using the Cocoa libraries. The directory
|
||||
"nextstep" and its subdirectories "Cocoa" and "GNUstep" contain files
|
||||
relevant to building and running on these systems.
|
||||
This file introduces the NeXTstep-based port of GNU Emacs, known as
|
||||
Emacs.app, which runs on on many POSIX systems and possibly W32 using
|
||||
the GNUstep libraries and on MacOS X systems using the Cocoa
|
||||
libraries. The directory "nextstep" and its subdirectories "Cocoa"
|
||||
and "GNUstep" contain files relevant to building and running on these
|
||||
systems.
|
||||
|
||||
Those primarily responsible for the port (in chronological order) were:
|
||||
|
||||
|
@ -45,25 +46,7 @@ tweaking.
|
|||
Compilation
|
||||
-----------
|
||||
|
||||
Run "./compile" in this directory, which will create a self-contained
|
||||
Emacs.app under 'build/'. This can be moved anywhere and run. To create a
|
||||
shared-lisp build, do "sudo ./compile -shared <install_root>". Set
|
||||
<install_root> to where the lisp will go, for example /usr/local to end up
|
||||
with /usr/local/shared/emacs/...
|
||||
|
||||
See the script itself for further details, and customizations.
|
||||
|
||||
You can rerun configure and/or run 'make' manually in the top-level or src
|
||||
directories to refresh nextstep/build/Emacs.app. (Or edit the "compile"
|
||||
script.)
|
||||
|
||||
On OS X you can also open Cocoa/Emacs.xcodeproj and build it again there. (Note,
|
||||
ZeroLink currently does not work with Emacs owing to the use of private_extern
|
||||
in the code as well as some other, unidentifiable problem.) Before doing this
|
||||
you must run 'compile' once as outlined above, to set up the lisp resources.
|
||||
|
||||
On GNUstep, you CAN'T use ProjectCenter, since PC cannot work with files
|
||||
outside of its project directory.
|
||||
See INSTALL.
|
||||
|
||||
|
||||
Usage
|
||||
|
@ -100,30 +83,6 @@ and was successively updated to OpenStep, Rhapsody, OS X, and then finally
|
|||
GNUstep, tracking GNU emacs core releases in the meantime.
|
||||
|
||||
|
||||
Files specific to the port
|
||||
--------------------------
|
||||
|
||||
src/nsfns.m
|
||||
src/nsfont.m
|
||||
src/nsgui.h
|
||||
src/nsimage.m
|
||||
src/nsmenu.m
|
||||
src/nsselect.m
|
||||
src/nsterm.h
|
||||
src/nsterm.m
|
||||
lisp/ns-grabenv.el
|
||||
lisp/ns-carbon-compat.el
|
||||
lisp/term/ns-win.el
|
||||
lib-src/mac-fix-env.m
|
||||
doc/emacs/ns-emacs.texi
|
||||
etc/Emacs.clr
|
||||
nextstep/
|
||||
|
||||
|
||||
Files modified for port:
|
||||
|
||||
many -- look for HAVE_NS / NS_IMPL_... #ifdefs
|
||||
|
||||
|
||||
Release History
|
||||
---------------
|
243
nextstep/compile
243
nextstep/compile
|
@ -1,243 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
|
||||
# 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 3 of the License, 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. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
# This script configures and builds Emacs to the subdirectory ./build .
|
||||
#
|
||||
# If --shared-lisp 'install_prefix' is given, lisp files will be installed to
|
||||
# install_prefix/share/emacs/23.0.0. This option must be run with 'sudo'.
|
||||
#
|
||||
# Otherwise (default) lisp will be installed under Emacs.app/Contents/Resources.
|
||||
# It does this by configuring it to install there, and running "make install".
|
||||
#
|
||||
# Some setup is different for GNUstep vs. Cocoa, and it determines which one
|
||||
# it's on using 'uname'.
|
||||
|
||||
# After it is run, Emacs can be run directly from the .app, which itself
|
||||
# can be placed anywhere.
|
||||
|
||||
# Further C development can be done using Xcode on OS X (not tested recently),
|
||||
# or by typing './remake' in the '../src' directory. Further Lisp
|
||||
# development can be done by either copying the files you modify
|
||||
# into install location, or running this script again.
|
||||
|
||||
|
||||
# Set up path and config variables.
|
||||
|
||||
PREFIX=""
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--shared-lisp=*)
|
||||
PREFIX=`echo "$1" | sed s/--shared-lisp=//`
|
||||
shift
|
||||
;;
|
||||
--enable-local-lisp-path=*)
|
||||
locallisppath=`echo "$1" | sed s/--enable-local-lisp-path=//`
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 [--shared-lisp='install_root' --enable-local-lisp-path='some path(s)']"
|
||||
exit
|
||||
esac
|
||||
done
|
||||
|
||||
DISTDIR=`pwd`/..
|
||||
|
||||
#OPTFLAGS='-g -O2'
|
||||
OPTFLAGS='-g'
|
||||
|
||||
# MAC OS X
|
||||
if [ `uname` == "Darwin" ]; then
|
||||
BASEDIR=`pwd`/build/Emacs.app/Contents
|
||||
BINDIR=${BASEDIR}/MacOS
|
||||
if [ "x$PREFIX" == "x" ]; then
|
||||
PREFIX=${BASEDIR}/Resources
|
||||
fi
|
||||
# If you want to try experimental enhanced Ctrl-g support, add to NS_CFG_OPTS:
|
||||
# --enable-cocoa-experimental-ctrl-g
|
||||
# (See bottom of USAGE.txt)
|
||||
NS_CFG_OPTS="--with-ns --without-x --without-freetype --prefix=${PREFIX} --exec_prefix=${BASEDIR}/MacOS --libexecdir=${BASEDIR}/MacOS/libexec"
|
||||
# --enable-cocoa-experimental-ctrl-g"
|
||||
# MAKE="make -j3"
|
||||
steve=`/usr/sbin/sysctl hw.ncpu | awk '{print $NF}'`
|
||||
MAKE="make -j`expr $steve + 1`"
|
||||
export CC=gcc-4.0
|
||||
export MACOSX_DEPLOYMENT_TARGET=10.3
|
||||
export MACOSX_DEPLOYMENT_TARGET_ppc=10.3
|
||||
export MACOSX_DEPLOYMENT_TARGET_i386=10.4
|
||||
export CFLAGS="$OPTFLAGS -arch ppc -arch i386"
|
||||
# -universal -sdk /Developer/SDKs/MacOSX10.4u.sdk
|
||||
# -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
|
||||
|
||||
# GNUSTEP
|
||||
else
|
||||
|
||||
# Currently must pass three dirs into Make process via environment variables.
|
||||
source /etc/GNUstep/GNUstep.conf
|
||||
if [ "x$GNUSTEP_MAKEFILES" == "x" ]; then
|
||||
if [ "x$GNUSTEP_SYSTEM_ROOT" == "x" ]; then
|
||||
echo "Failed to obtain any useful information from /etc/GNUstep/GNUstep.conf."
|
||||
echo "Please make sure GNUstep is installed on your system."
|
||||
exit
|
||||
fi
|
||||
GNUSTEP_MAKEFILES=${GNUSTEP_SYSTEM_ROOT}/Library/Makefiles
|
||||
GNUSTEP_SYSTEM_HEADERS=${GNUSTEP_SYSTEM_ROOT}/Library/Headers
|
||||
GNUSTEP_SYSTEM_LIBRARIES=${GNUSTEP_SYSTEM_ROOT}/Library/Libraries
|
||||
fi
|
||||
export GNUSTEP_MAKEFILES
|
||||
export GNUSTEP_SYSTEM_HEADERS
|
||||
export GNUSTEP_SYSTEM_LIBRARIES
|
||||
|
||||
BASEDIR=`pwd`/build/Emacs.app
|
||||
BINDIR=${BASEDIR}
|
||||
if [ "x${PREFIX}" == "x" ]; then
|
||||
PREFIX=${BASEDIR}/Resources
|
||||
fi
|
||||
NS_CFG_OPTS="--with-ns --without-x --without-freetype --prefix=${PREFIX} --exec-prefix=${BASEDIR} --libexecdir=${BASEDIR}/libexec"
|
||||
# --enable-cocoa-experimental-ctrl-g
|
||||
|
||||
if [ "x$MAKE" == "x" ]; then
|
||||
if [ "`gmake 2>&1`" == "gmake: *** No targets specified and no makefile found. Stop." ]; then
|
||||
MAKE=gmake
|
||||
else
|
||||
MAKE=make
|
||||
fi
|
||||
export MAKE
|
||||
CFLAGS="$OPTFLAGS"
|
||||
export CFLAGS
|
||||
fi
|
||||
|
||||
# PENDING: Not sure why this is needed
|
||||
export EMACSLOADPATH="${DISTDIR}/lisp:${DISTDIR}/lisp/emacs-lisp:${DISTDIR}/leim"
|
||||
fi
|
||||
|
||||
# End variable setup.
|
||||
###############################################################################
|
||||
|
||||
# Prepare a clean slate
|
||||
rm -fr build/Emacs.app
|
||||
|
||||
# Configure if needed
|
||||
cd ..
|
||||
if [ ! -f Makefile ]; then
|
||||
echo "./configure ${NS_CFG_OPTS}"
|
||||
./configure <<EOF ${NS_CFG_OPTS}
|
||||
EOF
|
||||
# ./configure ${NS_CFG_OPTS}
|
||||
if [ $? != 0 ]; then
|
||||
echo "*** Configure run failed. ***"
|
||||
echo "Please examine the above output to determine what went wrong,"
|
||||
echo "edit this script (\'compile\') to fix it, and rerun."
|
||||
# These are written BEFORE the job is compete, then it won't get done
|
||||
# next time, causing errors about CTLau-b5, tsang-b5, PY, etc..
|
||||
rm -f leim/changed.misc leim/changed.tit
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Pete's addition for local lisp load-path
|
||||
if [ "x$locallisppath" != "x" ]; then
|
||||
echo " * Local lisp path is being enabled"
|
||||
(cd src
|
||||
if [ -r epaths.h-orig ]; then
|
||||
# mv ../src/epaths.h-orig ../src/epaths.h
|
||||
echo "### src/epaths.h-orig already exists, no further change ###"
|
||||
else
|
||||
mv epaths.h epaths.h-orig
|
||||
printf "s,\(#define PATH_LOADSEARCH \"\),\\\1%s:,\n" "$
|
||||
{locallisppath}" > locallisppath.sed
|
||||
cat epaths.h-orig | sed -f locallisppath.sed > epaths.h
|
||||
rm locallisppath.sed
|
||||
fi)
|
||||
fi
|
||||
|
||||
# Clean up to avoid DOC-xxx and emacs-xxx out-of-controlness
|
||||
rm -f ../etc/DOC-* ../src/emacs-*
|
||||
|
||||
|
||||
# Go (installs binaries to ./build/Emacs.app, lisp to there or PREFIX)
|
||||
echo "make install"
|
||||
$MAKE
|
||||
status=$?
|
||||
|
||||
if [ -f src/epaths.h-orig ]; then
|
||||
mv src/epaths.h-orig src/epaths.h
|
||||
fi
|
||||
|
||||
if [ $status != 0 ]; then
|
||||
echo "*** Compilation failed. ***"
|
||||
echo "Please examine the above output to determine what went wrong,"
|
||||
echo "edit the configure options in this script (\'compile\') to fix it, and rerun."
|
||||
# rm -f leim/changed.misc leim/changed.tit
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$MAKE install
|
||||
if [ $? != 0 ]; then
|
||||
echo "*** Compilation succeeded, but .app assembly failed. ***"
|
||||
echo "Please examine the above output to determine what went wrong,"
|
||||
echo "edit the configure options in this script (\'compile\') to fix it, and rerun."
|
||||
# rm -f leim/changed.misc leim/changed.tit
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Move version stuff up to Resources
|
||||
cd ${BASEDIR}/Resources
|
||||
if [ -d share/emacs ]; then
|
||||
# clean up self-contained build
|
||||
mv -f share/emacs/*/* .
|
||||
fi
|
||||
|
||||
if [ ! -d info ]; then
|
||||
# happens on GNUstep, not OS X
|
||||
mv -f share/info .
|
||||
fi
|
||||
rm -fr share
|
||||
|
||||
# Get rid of .el.gz when .elc is present.. purists will complain, but this
|
||||
# knocks the app size down substantially.
|
||||
cd lisp
|
||||
#for f in `find . -name '*.elc' -print | sed -e s/.elc/.{el,el.gz}/`
|
||||
#do
|
||||
# rm -f $f
|
||||
#done
|
||||
|
||||
# Bin cleanup
|
||||
cd $BINDIR/bin
|
||||
rm -f emacs emacs-23*
|
||||
|
||||
# Move libexec stuff up, and link it from bin
|
||||
cd ../libexec
|
||||
mv -f emacs/*/*/* .
|
||||
rm -fr emacs
|
||||
cd ../bin
|
||||
ln -sf ../libexec/* .
|
||||
|
||||
# On OS X, install the bundled ispell
|
||||
#if [ `uname` == "Darwin" ]; then
|
||||
# cd $DISTDIR
|
||||
# cp ispell-3.3.01/bin/ispell* ${BINDIR}/libexec
|
||||
# cp -R ispell-3.3.01/lib ${BINDIR}/libexec
|
||||
#fi
|
||||
|
||||
echo ""
|
||||
echo "Build successful."
|
||||
echo ""
|
||||
|
||||
# arch-tag: 1fda51a1-d908-4e60-ad5e-47ffbb39f18d
|
Loading…
Add table
Reference in a new issue