emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to nextstep/compile


From: Adrian Robert
Subject: [Emacs-diffs] Changes to nextstep/compile
Date: Tue, 15 Jul 2008 18:15:58 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Adrian Robert <arobert> 08/07/15 18:15:19

Index: nextstep/compile
===================================================================
RCS file: nextstep/compile
diff -N nextstep/compile
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ nextstep/compile    15 Jul 2008 18:15:05 -0000      1.1
@@ -0,0 +1,223 @@
+#!/bin/sh
+
+# 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 ""




reply via email to

[Prev in Thread] Current Thread [Next in Thread]