#!/bin/sh # # Copyright (C) 1997 Free Software Foundation, Inc. # # Author: Ovidiu Predescu # 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