* make-package: Added ability to pass command line options

through to make and configure (-m, & -c,).
Added option to not copy Application into installer, the default
for X11 builds.  Does not copy CVS directories into installer.
Clarified some of the usage notes.
This commit is contained in:
Steven Tamm 2002-10-09 02:20:28 +00:00
parent 23b0a67405
commit 3f34081a9b
2 changed files with 47 additions and 12 deletions

View file

@ -1,3 +1,11 @@
2002-10-08 Steven Tamm <steventamm@mac.com>
* make-package: Added ability to pass command line options
through to make and configure (-m, & -c,).
Added option to not copy Application into installer, the default
for X11 builds. Does not copy CVS directories into installer.
Clarified some of the usage notes.
2002-10-07 Steven Tamm <steventamm@mac.com>
* make-package: Now calls make bootstrap if .elc files are missing

View file

@ -44,10 +44,12 @@ progname="$0"
prefix=/usr/local
with_config=yes
with_app=yes
with_x=no
ac_prev=
display_usage=false;
config_options=--without-x
config_options=;
while test $# != 0
do
if test -n "$ac_prev"; then
@ -64,18 +66,34 @@ do
prefix=`expr "x$1" : 'x[^=]*=\(.*\)'` ;;
-no-configure | -no-conf | --no-configure | --no-conf | --without-config)
with_config=no ;;
-no-app | --no-app | -without-app | --without-app)
with_app=no ;;
-without-x | --without-x)
with_x=no ;;
-with-x | --with-x)
config_options= ;;
with_x=yes
with_app=no ;;
-C,* | -c,*)
config_options="$config_options `expr "x$1" : 'x[^,]*,\(.*\)'`" ;;
-M,* | -m,*)
make_options="$make_options `expr "x$1" : 'x[^,]*,\(.*\)'`" ;;
esac
shift
done
if test "$with_x" = "no"; then
config_options="--without-x $config_options"
fi
if test "$display_usage" = "yes"; then
cat <<EOF
\`make-package' generates a Mac OS X package from an Emacs distribution.
By default, this first runs ./configure on the emacs directory. Then
make install to create the emacs distribution. Then some mac-specific
commands to generate the required information for the mac package.
\`make-package' generates a Mac OS X installer package from an Emacs
distribution. By default, this first runs ./configure on the emacs
directory. Then make install to create the emacs distribution.
Then some mac-specific commands to generate the required information
for the mac package. The installer will, by default, create a
Carbon application called Emacs in the /Applications directory, and
Usage: $0 [OPTION]
@ -85,8 +103,12 @@ Options:
of the emacs related file. By default /usr/local
--no-conf Do not run the configure script before running
make install.
--without-app Do not create the Emacs application bundle
--with-x Setup the install to use X Windows for its
windowed display, instead of carbon.
windowed display, instead of carbon. Implies
--without-app.
-C,option Pass option to configure
-M,option Pass option to make
EOF
exit 0
fi
@ -114,7 +136,7 @@ itself. Move or delete Emacs.pkg and try again." >&2
exit 1
fi
if [ ! -f Emacs.app/Contents/PkgInfo ]; then
if test $with_app == "yes" && [ ! -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
@ -177,13 +199,13 @@ fi
## Make bootstrap if .elc files are missing from distribution
if [ ! -f ../lisp/abbrev.elc ]; then
echo "Required .elc files missing; making bootstrap..."
if ! (cd ..; make bootstrap prefix=${tempparentfull}${prefix}); then
if ! (cd ..; make bootstrap prefix=${tempparentfull}${prefix} $make_options); then
echo "Make bootstrap failed... Aborting make-package."
exit 2
fi
fi
if ! (cd ..; make install prefix=${tempparentfull}${prefix}); then
if ! (cd ..; make install prefix=${tempparentfull}${prefix} $make_options); then
echo "Make failed... Aborting make-package."
exit 1
fi
@ -192,9 +214,14 @@ fi
### when the script is interrupted in mid-career.
trap "echo 'Interrupted...cleaning up the staging directory'; rm -rf ${tempparent}; rm -rf Emacs.pkg; exit 1" 1 2 15
mkdir ${tempparentfull}/Applications
if test "$with_app" == "yes"; then
mkdir ${tempparentfull}/Applications
cp -r Emacs.app ${tempparentfull}/Applications
## Copy Emacs application
cp -r Emacs.app ${tempparentfull}/Applications
## Delete any CVS files
find ${tempparentfull}/Applications -name "CVS" -execdir rm -r {} \;
fi
echo "Creating Package Info file"