Mercurial > emacs
comparison 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 |
comparison
equal
deleted
inserted
replaced
44889:e3b9f45140a5 | 44890:01b93e5e53a7 |
---|---|
1 #!/bin/sh | |
2 | |
3 #### make-bin-dist: create a binary Emacs distribution tar file for | |
4 #### Mac OS X. This basically runs a `configure' and `make install' | |
5 #### into a temporary directory and archives that directory. It also | |
6 #### places the Emacs application bundle and a installer script in the | |
7 #### tar file. The installer script is run to set up the XML file for | |
8 #### setting the environment variables used by Emacs when it is | |
9 #### started from the Finder. | |
10 | |
11 # Copyright (C) 2002 Free Software Foundation, Inc. | |
12 # | |
13 # This file is part of GNU Emacs. | |
14 # | |
15 # GNU Emacs is free software; you can redistribute it and/or modify | |
16 # it under the terms of the GNU General Public License as published by | |
17 # the Free Software Foundation; either version 2, or (at your option) | |
18 # any later version. | |
19 # | |
20 # GNU Emacs is distributed in the hope that it will be useful, | |
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
23 # GNU General Public License for more details. | |
24 # | |
25 # You should have received a copy of the GNU General Public License | |
26 # along with GNU Emacs; see the file COPYING. If not, write to the | |
27 # Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
28 # Boston, MA 02111-1307, USA. | |
29 | |
30 progname="$0" | |
31 | |
32 ### Exit if a command fails. | |
33 #set -e | |
34 | |
35 ### Print out each line we read, for debugging's sake. | |
36 set -v | |
37 | |
38 LANGUAGE=C | |
39 LC_ALL=C | |
40 LC_MESSAGES= | |
41 LANG= | |
42 export LANGUAGE LC_ALL LC_MESSAGES LANG | |
43 | |
44 ## Don't restrict access to any files. | |
45 umask 0 | |
46 | |
47 ### Make sure we're running in the right place. | |
48 if [ ! -f Emacs.app/Contents/PkgInfo ]; then | |
49 echo "${progname}: Can't find \`Emacs.app/Contents/PkgInfo'" >&2 | |
50 echo "${progname} must be run in the \`mac' directory of the Emacs" >&2 | |
51 echo "distribution tree. cd to that directory and try again." >&2 | |
52 exit 1 | |
53 fi | |
54 | |
55 ### Check whether file ../lisp/version.el exists. | |
56 if [ ! -f ../lisp/version.el ]; then | |
57 echo "${progname}: Can't find \`../lisp/version.el'" >&2 | |
58 exit 1 | |
59 fi | |
60 | |
61 ### Find out which version of Emacs this is. | |
62 shortversion=`grep 'defconst[ ]*emacs-version' ../lisp/version.el \ | |
63 | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'` | |
64 version=`grep 'defconst[ ]*emacs-version' ../lisp/version.el \ | |
65 | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` | |
66 if [ ! "${version}" ]; then | |
67 echo "${progname}: can't find current Emacs version in \`./lisp/version.el'" >&2 | |
68 exit 1 | |
69 fi | |
70 | |
71 echo Version numbers are $version and $shortversion | |
72 | |
73 ### Make sure we don't already have a directory emacs-${version}. | |
74 | |
75 emacsname="emacs-${version}${new_extension}" | |
76 | |
77 if [ -d ${emacsname} ] | |
78 then | |
79 echo Directory "${emacsname}" already exists >&2 | |
80 exit 1 | |
81 fi | |
82 | |
83 ### Make sure the subdirectory is available. | |
84 tempparent="make-bin-dist.tmp.$$" | |
85 if [ -d ${tempparent} ]; then | |
86 echo "${progname}: staging directory \`${tempparent}' already exists. | |
87 Perhaps a previous invocation of \`${progname}' failed to clean up after | |
88 itself. Check that directories whose names are of the form | |
89 \`make-dist.tmp.NNNNN' don't contain any important information, remove | |
90 them, and try again." >&2 | |
91 exit 1 | |
92 fi | |
93 | |
94 tempparentfull="`pwd`/${tempparent}" | |
95 | |
96 echo Installing into directory ${tempparentfull} >&2 | |
97 | |
98 (cd ..; ./configure --prefix=${tempparentfull}; make install) | |
99 | |
100 ### This trap ensures that the staging directory will be cleaned up even | |
101 ### when the script is interrupted in mid-career. | |
102 trap "echo 'Interrupted...cleaning up the staging directory'; rm -rf ${tempparent}; exit 1" 1 2 15 | |
103 | |
104 cp -r Emacs.app ${tempparent} | |
105 | |
106 cp osx-install ${tempparent} | |
107 | |
108 echo "Creating tar file" | |
109 | |
110 mv ${tempparent} ${emacsname} | |
111 | |
112 tar cvf - ${emacsname} | gzip > ${emacsname}-mac-bin.tar.gz | |
113 | |
114 echo "Cleaning up the staging directory" | |
115 rm -rf ${emacsname} | |
116 | |
117 ### make-bin-dist ends here |