Add executable startup script

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@4329 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Adam Fedor 1999-06-02 03:16:12 +00:00
parent e7c4336097
commit b720fd5957
12 changed files with 282 additions and 45 deletions

View file

@ -2,6 +2,7 @@ config.log
config.make
config.cache
which_lib
which_lib.pl
GNUmakefile
GNUstep.sh
GNUstep.csh
@ -9,3 +10,4 @@ config.h
config.status
openapp
debugapp
executable.template

View file

@ -1,3 +1,16 @@
1999-06-01 Adam Fedor <fedor@gnu.org>
* executable.template.in: New file to be used as shell script
application/tool starter.
* configure.in: Configure it.
* GNUmakefile.in: Install it.
* GNUstep.sh.in: Use simpler path and add GNUSTEP_PATHPREFIX_LIST
* GNUstep.csh.in: Likewise.
* openapp.in: Use GNUSTEP_PATHPREFIX_LIST and simpler path search
* debugapp.in: Likewise.
* application.make: Copy it to main app directory (using app name).
* tool.make: Install it to main Tool directory when installing.
Fri May 28 6:10:00 1999 Richard Frith-Macdonald <richard@brainstorm.co.uk>
* application.make: Incorporate appnameInfo.plist into the Info.plist

View file

@ -91,7 +91,7 @@ install: all
common.make brain.make library.make rules.make target.make \
tool.make test-library.make names.make objc.make \
test-application.make test-tool.make subproject.make \
documentation.make MediaBook.func; do \
documentation.make MediaBook.func executable.template; do \
$(INSTALL_DATA) $$f $(makedir); \
done
$(INSTALL_DATA) config.site $(prefix)/share
@ -114,7 +114,7 @@ uninstall:
common.make brain.make library.make rules.make target.make \
tool.make test-library.make names.make objc.make \
test-application.make test-tool.make subproject.make \
documentation.make MediaBook.func; do \
documentation.make MediaBook.func executable.template; do \
rm -f $(makedir)/$$f; \
done
rm -f $(prefix)/share/config.site

View file

@ -60,13 +60,12 @@ if ( ! ${?GNUSTEP_BUILD_ROOT} ) then
#
# Add the GNUstep tools directories to the path
#
setenv PATH ${GNUSTEP_SYSTEM_ROOT}/Tools:$PATH
setenv PATH ${GNUSTEP_SYSTEM_ROOT}/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/${LIBRARY_COMBO}:$PATH
setenv PATH ${GNUSTEP_SYSTEM_ROOT}/Tools/$GNUSTEP_HOST_CPU/${GNUSTEP_HOST_OS}:$PATH
setenv PATH $GNUSTEP_LOCAL_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/${LIBRARY_COMBO}:$PATH
setenv PATH $GNUSTEP_LOCAL_ROOT/Tools/$GNUSTEP_HOST_CPU/${GNUSTEP_HOST_OS}:$PATH
setenv PATH $GNUSTEP_USER_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/${LIBRARY_COMBO}:$PATH
setenv PATH $GNUSTEP_USER_ROOT/Tools/$GNUSTEP_HOST_CPU/${GNUSTEP_HOST_OS}:$PATH
if ( ! ${?GNUSTEP_PATHPREFIX_LIST} ) then
setenv GNUSTEP_PATHPREFIX_LIST ${GNUSTEP_USER_ROOT}:${GNUSTEP_LOCAL_ROOT}:${GNUSTEP_SYSTEM_ROOT}
endif
foreach dir $GNUSTEP_PATHPREFIX_LIST
setenv PATH $PATH:$dir/Tools
end
source ${GNUSTEP_SYSTEM_ROOT}/Makefiles/ld_lib_path.csh
@ -77,12 +76,6 @@ if ( -e ~/.GNUstep/GNUstep.csh ) then
. ~/.GNUstep/GNUstep.csh
endif
set TDIR=${GNUSTEP_SYSTEM_ROOT}/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS
if ( -e $TDIR/$LIBRARY_COMBO/make_services ) then
$TDIR/$LIBRARY_COMBO/make_services &
if ( -e $TDIR/make_services ) then
$TDIR/make_services &
endif
endif
${GNUSTEP_SYSTEM_ROOT}/Tools/make_services &
endif # ( "${GNUSTEP_BUILD_ROOT}" == "" )

View file

@ -63,13 +63,14 @@ if [ -z "$GNUSTEP_BUILD_ROOT" ]; then
#
# Add the GNUstep tools directories to the path
#
PATH=$GNUSTEP_SYSTEM_ROOT/Tools:$PATH
PATH=$GNUSTEP_SYSTEM_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$PATH
PATH=$GNUSTEP_SYSTEM_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS:$PATH
PATH=$GNUSTEP_LOCAL_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$PATH
PATH=$GNUSTEP_LOCAL_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS:$PATH
PATH=$GNUSTEP_USER_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO:$PATH
PATH=$GNUSTEP_USER_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS:$PATH
if [ -z "$GNUSTEP_PATHPREFIX_LIST" ]; then
GNUSTEP_PATHPREFIX_LIST=$GNUSTEP_USER_ROOT:$GNUSTEP_LOCAL_ROOT:$GNUSTEP_SYSTEM_ROOT
export GNUSTEP_PATHPREFIX_LIST
fi
IFS=:
for dir in $GNUSTEP_PATHPREFIX_LIST; do
PATH=$PATH:$dir/Tools
done
. $GNUSTEP_MAKEFILES/ld_lib_path.sh
@ -85,15 +86,6 @@ fi
# Run 'make_services' in background if possible - updates cache of services
# and applications/file-extensions known to the applications.
#
TDIR=$GNUSTEP_SYSTEM_ROOT/Tools/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS
if [ -f $TDIR/$LIBRARY_COMBO/make_services ]
then
$TDIR/$LIBRARY_COMBO/make_services &
else
if [ -f $TDIR/make_services ]
then
$TDIR/make_services &
fi
fi
$GNUSTEP_SYSTEM_ROOT/Tools/make_services &
fi # [ -z "$GNUSTEP_BUILD_ROOT" ]

View file

@ -133,11 +133,12 @@ $(INTERNAL_app_NAME).iconheader:
$(APP_DIR_NAME):
mkdir $@
else
internal-app-all:: before-$(TARGET)-all $(GNUSTEP_OBJ_DIR) \
$(APP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO) $(APP_FILE) \
app-resource-files after-$(TARGET)-all
$(APP_DIR_NAME)/$(INTERNAL_app_NAME) app-resource-files after-$(TARGET)-all
before-$(TARGET)-all::
@ -145,6 +146,10 @@ after-$(TARGET)-all::
$(APP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO):
@$(MKDIRS) $(APP_DIR_NAME)/$(GNUSTEP_TARGET_DIR)/$(LIBRARY_COMBO)
$(APP_DIR_NAME)/$(INTERNAL_app_NAME):
cp $(GNUSTEP_MAKEFILES)/executable.template $(APP_DIR_NAME)/$(INTERNAL_app_NAME)
chmod a+x $(APP_DIR_NAME)/$(INTERNAL_app_NAME)
endif
app-resource-dir::

6
configure vendored
View file

@ -3052,7 +3052,7 @@ ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
trap 'rm -fr `echo "config.h config.make openapp debugapp which_lib.pl opentool
GNUmakefile GNUstep.sh GNUstep.csh config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
executable.template GNUmakefile GNUstep.sh GNUstep.csh config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
@ -3170,7 +3170,7 @@ EOF
cat >> $CONFIG_STATUS <<EOF
CONFIG_FILES=\${CONFIG_FILES-"config.h config.make openapp debugapp which_lib.pl opentool
GNUmakefile GNUstep.sh GNUstep.csh"}
executable.template GNUmakefile GNUstep.sh GNUstep.csh"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
@ -3341,7 +3341,7 @@ cat >> $CONFIG_STATUS <<EOF
EOF
cat >> $CONFIG_STATUS <<\EOF
chmod a+x openapp debugapp which_lib.pl opentool
chmod a+x openapp debugapp which_lib.pl opentool executable.template
exit 0
EOF
chmod +x $CONFIG_STATUS

View file

@ -339,5 +339,5 @@ AC_SUBST(GNUSTEP_MINOR_VERSION)
# Produce the output files
#--------------------------------------------------------------------
AC_OUTPUT(config.h config.make openapp debugapp which_lib.pl opentool
GNUmakefile GNUstep.sh GNUstep.csh,
chmod a+x openapp debugapp which_lib.pl opentool)
executable.template GNUmakefile GNUstep.sh GNUstep.csh,
chmod a+x openapp debugapp which_lib.pl opentool executable.template)

View file

@ -91,11 +91,16 @@ case $app in
*/*) # A relative path
full_appname=`(cd $app; pwd)`;;
*) # A path that should be searched into the GNUstep paths
SPATH=.:$GNUSTEP_USER_ROOT/Apps:$GNUSTEP_LOCAL_ROOT/Apps:$GNUSTEP_SYSTEM_ROOT/Apps:$PATH
if [ -n $GNUSTEP_PATHPREFIX_LIST ]; then
SPATH=$GNUSTEP_PATHPREFIX_LIST
else
SPATH=$PATH
fi
SPATH=.:$SPATH
IFS=:
for dir in $SPATH; do
if [ -d $dir/$app ]; then
full_appname=`(cd $dir/$app; pwd)`
if [ -d $dir/Apps/$app ]; then
full_appname=`(cd $dir/Apps/$app; pwd)`
break;
fi
done;;

220
executable.template.in Executable file
View file

@ -0,0 +1,220 @@
#!/bin/sh
#
# Copyright (C) 1999 Free Software Foundation, Inc.
#
# Author: Adam Fedor <fedor@gnu.org>
# Date: May 1999
#
# This file is part of the GNUstep Makefile Package.
#
# This library 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
# of the License, or (at your option) any later version.
#
# You should have received a copy of the GNU General Public
# License along with this library; see the file COPYING.LIB.
# If not, write to the Free Software Foundation,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# This is a shell script which attempts to find the GNUstep executable
# of the same name based on the current host and library_combo.
#--------------------------------------------------------------------------
# Functions
#--------------------------------------------------------------------------
available-platforms() {
echo -- NOT IMPLEMENTED YET ---
}
#--------------------------------------------------------------------------
# Main body
#--------------------------------------------------------------------------
if [ -z "$EXEEXT" ]; then
EXEEXT=@EXEEXT@
fi
if [ -z "$LIBRARY_COMBO" ]; then
LIBRARY_COMBO=@ac_cv_library_combo@
fi
# Process arguments
app=$0
show_available_platforms=0
show_relative_path=0
show_full_path=0
while true
do
case $1 in
--script-help)
echo usage: `basename $0` [--library-combo=...]
echo " [--available-platforms][--full-executable-path]"
echo " [--relative-executable-path] [arguments...]"
echo
echo " --library-combo=... specifies a GNUstep backend to use."
echo " It overrides the default LIBRARY_COMBO environment variable."
echo
echo " --available-platforms displays a list of valid exec hosts"
echo " --full-executable-path displays full path to executable"
echo " --relative-executable-path displays subdirectory path"
echo " arguments... are the arguments to the application."
exit 0
;;
--library-combo=*)
LIBRARY_COMBO=`echo $1 | sed 's/--library-combo=//'`
shift
;;
--available-platforms)
show_available_platforms=1
exit 0
;;
--full-executable-path)
show_full_path=1
break
;;
--relative-executable-path)
show_relative_path=1
break
;;
*)
break;;
esac
done
if [ "$LIBRARY_COMBO" = nx ]; then
LIBRARY_COMBO=nx-nx-nx-nil
elif [ "$LIBRARY_COMBO" = gnu-xdps ]; then
LIBRARY_COMBO=gnu-gnu-gnu-xdps
elif [ "$LIBRARY_COMBO" = gnu-xgps ]; then
LIBRARY_COMBO=gnu-gnu-gnu-xgps
elif [ "$LIBRARY_COMBO" = fd-xgps ]; then
LIBRARY_COMBO=gnu-fd-gnu-xgps
elif [ "$LIBRARY_COMBO" = fd-xdps ]; then
LIBRARY_COMBO=gnu-fd-gnu-xdps
fi
export LIBRARY_COMBO
# Find path to ourself
app=`echo $app | sed 's%/*$%%'`
dir=`dirname $app`
case $app in
/*) # An absolute path.
full_appname=$dir;;
*/*) # A relative path
full_appname=`(cd $dir; pwd)`;;
*) # A path that needs to be searched
if [ -n $GNUSTEP_PATHPREFIX_LIST ]; then
SPATH=$GNUSTEP_PATHPREFIX_LIST
else
SPATH=$PATH
fi
SPATH=.:$SPATH
IFS=:
for path_dir in $SPATH; do
if [ -d $path_dir/$dir ]; then
full_appname=`(cd $path_dir/$dir; pwd)`
break;
fi
if [ -d $path_dir/Apps/$dir ]; then
full_appname=`(cd $path_dir/Apps/$dir; pwd)`
break;
fi
done;;
esac
if [ -z "$full_appname" ]; then
echo "Can't find absolute path for $app! Please specify full path when"
echo "invoking executable"
exit 1
fi
#
# get base app name
#
app=`echo $app | sed 's/\.[a-z]*$//'`
app=`basename $app`
if [ -f $full_appname/Resources/Info-gnustep.plist ]; then
appname=`grep NSExecutable $full_appname/Resources/Info-gnustep.plist`
if [ -n '$appname' ]; then
appname=`echo '$appname' | sed 's,\", ,g' | awk '{print $3}'`
fi
fi
if [ -z $appname ]; then
appname=$app
fi
if [ -n "$EXEEXT" ]; then
appname=$appname$EXEEXT
fi
if [ $show_available_platforms = 1 ]; then
cd $full_appname
available_platforms
exit 0
fi
#
# Determine the host information
#
if [ -z "$GNUSTEP_HOST" ]; then
GNUSTEP_HOST=`$GNUSTEP_SYSTEM_ROOT/Makefiles/config.guess`
export GNUSTEP_HOST
fi
if [ -z "$GNUSTEP_HOST_CPU" ]; then
GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/Makefiles/cpu.sh $GNUSTEP_HOST`
GNUSTEP_HOST_CPU=`$GNUSTEP_SYSTEM_ROOT/Makefiles/clean_cpu.sh $GNUSTEP_HOST_CPU`
export GNUSTEP_HOST_CPU
fi
if [ -z "$GNUSTEP_HOST_VENDOR" ]; then
GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/Makefiles/vendor.sh $GNUSTEP_HOST`
GNUSTEP_HOST_VENDOR=`$GNUSTEP_SYSTEM_ROOT/Makefiles/clean_vendor.sh $GNUSTEP_HOST_VENDOR`
export GNUSTEP_HOST_VENDOR
fi
if [ -z "$GNUSTEP_HOST_OS" ]; then
GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/Makefiles/os.sh $GNUSTEP_HOST`
GNUSTEP_HOST_OS=`$GNUSTEP_SYSTEM_ROOT/Makefiles/clean_os.sh $GNUSTEP_HOST_OS`
export GNUSTEP_HOST_OS
fi
#
# Make sure the executable is there
#
if [ -x $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname ]; then
relative_path=$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname
elif [ -x $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$appname ]; then
relative_path=$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$appname
elif [ -x $full_appname/$GNUSTEP_HOST_CPU/$appname ]; then
relative_path=$GNUSTEP_HOST_CPU/$appname
elif [ $appname != $app -a -x $full_appname/$appname ]; then
relative_path=$appname
else
echo "$full_appname application does not have a binary for this kind of machine/operating system."
exit 1
fi
if [ $show_relative_path = 1 ]; then
echo $relative_path
exit 0
fi
if [ $show_full_path = 1 ]; then
echo $full_appname/$relative_path
exit 0
fi
if [ "$LIBRARY_COMBO" = nx-nx-nx-nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ -f "$full_appname/library_paths.openapp" ]; then
additional_library_paths="`cat $full_appname/library_paths.openapp`"
fi
else
if [ -f "$full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/library_paths.openapp" ]; then
additional_library_paths="`cat $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/library_paths.openapp`"
fi
fi
# Load up LD_LIBRARY_PATH
# this needs to be PATH on NT
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
exec $full_appname/$relative_path $@

View file

@ -94,11 +94,16 @@ case $app in
*/*) # A relative path
full_appname=`(cd $app; pwd)`;;
*) # A path that should be searched into the GNUstep paths
SPATH=.:$GNUSTEP_USER_ROOT/Apps:$GNUSTEP_LOCAL_ROOT/Apps:$GNUSTEP_SYSTEM_ROOT/Apps:$PATH
if [ -n $GNUSTEP_PATHPREFIX_LIST ]; then
SPATH=$GNUSTEP_PATHPREFIX_LIST
else
SPATH=$PATH
fi
SPATH=.:$SPATH
IFS=:
for dir in $SPATH; do
if [ -d $dir/$app ]; then
full_appname=`(cd $dir/$app; pwd)`
if [ -d $dir/Apps/$app ]; then
full_appname=`(cd $dir/Apps/$app; pwd)`
break;
fi
done;;

View file

@ -92,6 +92,8 @@ internal-install-dirs::
install-tool::
$(INSTALL_PROGRAM) -m 0755 $(GNUSTEP_OBJ_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT) \
$(TOOL_INSTALLATION_DIR);
cp $(GNUSTEP_MAKEFILES)/executable.template $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME)
chmod a+x $(GNUSTEP_INSTALLATION_DIR)/Tools/$(INTERNAL_tool_NAME)
internal-tool-uninstall::
rm -f $(TOOL_INSTALLATION_DIR)/$(INTERNAL_tool_NAME)$(EXEEXT)