Mercurial > emacs
diff mac/make-bin-dist @ 44890:01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
lisp/ChangeLog, and src/ChangeLog for list of changes.
author | Andrew Choi <akochoi@shaw.ca> |
---|---|
date | Fri, 26 Apr 2002 23:39:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mac/make-bin-dist Fri Apr 26 23:39:06 2002 +0000 @@ -0,0 +1,117 @@ +#!/bin/sh + +#### make-bin-dist: create a binary Emacs distribution tar file for +#### Mac OS X. This basically runs a `configure' and `make install' +#### into a temporary directory and archives that directory. It also +#### places the Emacs application bundle and a installer script in the +#### tar file. The installer script is run to set up the XML file for +#### setting the environment variables used by Emacs when it is +#### started from the Finder. + +# Copyright (C) 2002 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 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, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +progname="$0" + +### Exit if a command fails. +#set -e + +### Print out each line we read, for debugging's sake. +set -v + +LANGUAGE=C +LC_ALL=C +LC_MESSAGES= +LANG= +export LANGUAGE LC_ALL LC_MESSAGES LANG + +## Don't restrict access to any files. +umask 0 + +### Make sure we're running in the right place. +if [ ! -f Emacs.app/Contents/PkgInfo ]; then + echo "${progname}: Can't find \`Emacs.app/Contents/PkgInfo'" >&2 + echo "${progname} must be run in the \`mac' directory of the Emacs" >&2 + echo "distribution tree. cd to that directory and try again." >&2 + exit 1 +fi + +### Check whether file ../lisp/version.el exists. +if [ ! -f ../lisp/version.el ]; then + echo "${progname}: Can't find \`../lisp/version.el'" >&2 + exit 1 +fi + +### Find out which version of Emacs this is. +shortversion=`grep 'defconst[ ]*emacs-version' ../lisp/version.el \ + | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'` +version=`grep 'defconst[ ]*emacs-version' ../lisp/version.el \ + | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` +if [ ! "${version}" ]; then + echo "${progname}: can't find current Emacs version in \`./lisp/version.el'" >&2 + exit 1 +fi + +echo Version numbers are $version and $shortversion + +### Make sure we don't already have a directory emacs-${version}. + +emacsname="emacs-${version}${new_extension}" + +if [ -d ${emacsname} ] +then + echo Directory "${emacsname}" already exists >&2 + exit 1 +fi + +### Make sure the subdirectory is available. +tempparent="make-bin-dist.tmp.$$" +if [ -d ${tempparent} ]; then + echo "${progname}: staging directory \`${tempparent}' already exists. +Perhaps a previous invocation of \`${progname}' failed to clean up after +itself. Check that directories whose names are of the form +\`make-dist.tmp.NNNNN' don't contain any important information, remove +them, and try again." >&2 + exit 1 +fi + +tempparentfull="`pwd`/${tempparent}" + +echo Installing into directory ${tempparentfull} >&2 + +(cd ..; ./configure --prefix=${tempparentfull}; make install) + +### This trap ensures that the staging directory will be cleaned up even +### when the script is interrupted in mid-career. +trap "echo 'Interrupted...cleaning up the staging directory'; rm -rf ${tempparent}; exit 1" 1 2 15 + +cp -r Emacs.app ${tempparent} + +cp osx-install ${tempparent} + +echo "Creating tar file" + +mv ${tempparent} ${emacsname} + +tar cvf - ${emacsname} | gzip > ${emacsname}-mac-bin.tar.gz + +echo "Cleaning up the staging directory" +rm -rf ${emacsname} + +### make-bin-dist ends here