tools-make/debugapp.in

143 lines
4.6 KiB
Text
Raw Permalink Normal View History

#!/bin/sh
#
# Copyright (C) 1997 Free Software Foundation, Inc.
#
# Author: Ovidiu Predescu <ovidiu@net-community.com>
# Date: October 1997
#
# 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.
# Execute gdb for the application passed as argument. The application is
# searched through the GNUstep directories if a complete or relative path name
# is not specified. The arguments passed after the application name are passed
# unmodified to the application.
if [ -z "$1" ]; then
echo usage: `basename $0` [--library-combo=...] application [arguments...]
exit 1
fi
LIBRARY_COMBO=@ac_cv_library_combo@
case $1 in
--library-combo=*)
LIBRARY_COMBO=`echo $1 | sed 's/--library-combo=//'`
if [ -z "$2" ]; then
echo usage: `basename $0` [--library-combo=...] application [arguments...]
exit 1
fi
app=$2; shift; shift
;;
*)
app=$1; shift;;
esac
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" = fd-xdps ]; then
LIBRARY_COMBO=gnu-fd-gnu-xdps
fi
# Remove leading slashes at the end of the application name
app=`echo $app | sed 's%/*$%%'`
case $app in
/*) # An absolute path.
full_appname=$app;;
*/*) # 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
IFS=:
for dir in $SPATH; do
if [ -d $dir/$app ]; then
full_appname=`(cd $dir/$app; pwd)`
break;
fi
done;;
esac
if [ -z "$full_appname" ]; then
echo "Can't find the required application: $app!"
exit 1
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
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
appname=`echo $app | sed 's/\.[a-z]*$//'`
. $GNUSTEP_SYSTEM_ROOT/Makefiles/ld_lib_path.sh
if [ "$LIBRARY_COMBO" = nx-nx-nx-nil -a $GNUSTEP_HOST_OS = nextstep4 ]; then
if [ ! -f $full_appname/$appname ]; then
echo "$full_appname application does not have a binary for this kind of machine and operating system."
exit 1
fi
# Support for GDBbundle under OPENSTEP
gdb -connect TextEdit $gdbargs $full_appname/$appname
else
# Determine if the application has a binary for this operating system
if [ ! -d $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS ]; then
echo "$full_appname application does not have a binary for this kind of machine and operating system."
exit 1
fi
if [ ! -d $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO ]; then
echo "$full_appname application does not have a binary for this combination of libraries: $LIBRARY_COMBO."
exit 1
fi
# Support for GDBbundle under OPENSTEP
if [ $GNUSTEP_HOST_OS = nextstep4 ]; then
gdb -connect TextEdit $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname
else
gdb $full_appname/$GNUSTEP_HOST_CPU/$GNUSTEP_HOST_OS/$LIBRARY_COMBO/$appname
fi
fi