Transformar arquivo em executável

1. Transformar arquivo em executável

Índio Kawak
Kawak

(usa Ubuntu)

Enviado em 31/10/2014 - 01:08h

Olá pessoal,

Sou iniciante no linux e estou com uma dúvida. Eu aprendi que quando quero executar um arquivo primeiro eu preciso torná-lo executável ($chmod +x nome_arquivo) e depois executar com a linha "$./nome_arquivo". Bom, eu gostaria de saber como eu deixo esse arquivo já na opção de executável (apenas dando 2 clicks nele), sem precisar usar o $./nome_arquivo toda vez ?




  


2. Re: Transformar arquivo em executável

Rodrigo Raíz
Raz

(usa FreeBSD)

Enviado em 31/10/2014 - 04:07h

Recomendo que primeiramente busque deixar seus programas em pastas ocultas em sua pasta pessoal,depois unicamente abra um terminal e indique a pasta que contem seu executável,por exemplo:

1 sudo su
2 coloque sua senha
3 cd /home/the-boss/.seuprograma
4 chmod +x seuarquivo
5 ./seuarquivo

Não há falhas,portanto verifique se esta escrevendo o nome da pasta e executável de forma correta,incluindo diferencial nas letras maiusculas e minusculas,L nunca será igual a l em um terminal,lembre-se disso e seja bem vindo.


3. Re: Transformar arquivo em executável

Hugo Cerqueira
hrcerq

(usa Outra)

Enviado em 31/10/2014 - 08:09h

Se bem entendi, vc quer executar o seu script por interface gráfica, ou seja, clicando no arquivo... bom se for isso, vai depender do seu gerenciador de arquivos. Por exemplo, o nautilus permite isso.

Você edita as preferências do nautilus, e nas opções de comportamento, vc pode mudar o que os arquivos de texto executáveis fazem (se abre o arquivo para editar, se executa ou se pergunta o que fazer).


4. Re: Transformar arquivo em executável

Índio Kawak
Kawak

(usa Ubuntu)

Enviado em 31/10/2014 - 10:25h

hrcerq escreveu:

Se bem entendi, vc quer executar o seu script por interface gráfica, ou seja, clicando no arquivo... bom se for isso, vai depender do seu gerenciador de arquivos. Por exemplo, o nautilus permite isso.

Você edita as preferências do nautilus, e nas opções de comportamento, vc pode mudar o que os arquivos de texto executáveis fazem (se abre o arquivo para editar, se executa ou se pergunta o que fazer).


Isso, eu quero executar o script por interface gráfica!
Eu fiz como você disse e mudei a opção para executar os arquivos textos quando forem abertos. O ícone do programa chegou a abrir, mas em seguida ele logo fecha. Eu tentei mudar as permissões do arquivo para leitura e escrita, mas ficou na mesma (surge o programa como se fosse abrir e depois fecha)




5. Re: Transformar arquivo em executável

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 31/10/2014 - 11:31h

Kawak escreveu:

Olá pessoal,

Sou iniciante no linux e estou com uma dúvida. Eu aprendi que quando quero executar um arquivo primeiro eu preciso torná-lo executável ($chmod +x nome_arquivo) e depois executar com a linha "$./nome_arquivo". Bom, eu gostaria de saber como eu deixo esse arquivo já na opção de executável (apenas dando 2 clicks nele), sem precisar usar o $./nome_arquivo toda vez ?



Sua dúvida é pertinente, mas o que acontece é que ela, sua dúvida, parte de algo que tem um pequeno problema conceitual...

comecemos.... com o comando...

não é:

$chmod .....
$./ .....

o dolar é indicativo de usuario comum... de root é tralha, # ... isso posto, seriam os comandos reais:

$ ./

e

$ sudo chmod.... OU

$ su
senha de root
# chmod ...

esclarescido isso.... $ é usuário e # é root, isso já aparece no bash, não deve ser digitado e há um espaço entre $ ou # e o comando....

isso acertado, seria não exatamente "tornar executável" mas sim "mudar a permissão',para que possa ser executado....

O comando chmod, muda as permissões,o modo como um arquivo é tratado... O operador +, significa a permissão é ADICIONADA, ou seja, nenhuma permissão é mudada, mas sim uma nova permissão é juntada...

assim "chmod +x" significará.... adicione a permissão de executar, Às já existentes ao arquivo... Algumas vêzes, isso só vai executar como Root...

se vc quiser que usuário comum execute também, faça assim:

$ sudo chmod a +x arquivo

isto é para todos os usuarios (a de all),adicione a permissão execute às existentes no arquivo...

mudada a permissão, para executar com dois cliques, depois que mudou a permissão dá. Também dá para fazer atalho dele



quanto ao que vc quer, que é criar direto como executável... Quando vc faz o arquivo, num processador, por default ele é texto puro, não é executável... Isso é uma característica do linux, e uma proteção dele...

para criar como executável, direto, não dá (até dá, mas não é seguro, vc teria d emexer em permissões, usuarios e grupos do seu sistema, teria de dar poderes de root a usuários). Vc precisa compilar esse texto ou script, converter num binário. Binário, agora ele é diretamente executável.






6. Re: Transformar arquivo em executável

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 31/10/2014 - 11:39h

Kawak, me parece que não executou clicando... vamos fazer assim:

poste as linhas, todas do arquivo que quer executar... vc tá na pasta dele?
vc quer fazer atalho dele no desktop ou não?
se fez atalho, o que colocou como comando nele?

um complicante é que pode ser que o que vc quer executar, necessita sempre de terminal, outras coisas não precisam.

então primeira coisa, poste o "conteúdo" do seu script,ou programa que está tentando executar


7. Re: Transformar arquivo em executável

Perfil removido
removido

(usa Nenhuma)

Enviado em 31/10/2014 - 17:39h

Kawak escreveu:

hrcerq escreveu:

Se bem entendi, vc quer executar o seu script por interface gráfica, ou seja, clicando no arquivo... bom se for isso, vai depender do seu gerenciador de arquivos. Por exemplo, o nautilus permite isso.

Você edita as preferências do nautilus, e nas opções de comportamento, vc pode mudar o que os arquivos de texto executáveis fazem (se abre o arquivo para editar, se executa ou se pergunta o que fazer).


Isso, eu quero executar o script por interface gráfica!
Eu fiz como você disse e mudei a opção para executar os arquivos textos quando forem abertos. O ícone do programa chegou a abrir, mas em seguida ele logo fecha. Eu tentei mudar as permissões do arquivo para leitura e escrita, mas ficou na mesma (surge o programa como se fosse abrir e depois fecha)



Faça isso que o albfneto disse acima; a parte de executar o script você já conseguiu (o terminal de fato é aberto), o que está fazendo ele fechar "instantaneamente" pode ser o conteúdo do seu script, que não tem pausas ou é muito curto;


8. Re: Transformar arquivo em executável

Índio Kawak
Kawak

(usa Ubuntu)

Enviado em 31/10/2014 - 19:05h

albfneto escreveu:

Kawak, me parece que não executou clicando... vamos fazer assim:

poste as linhas, todas do arquivo que quer executar... vc tá na pasta dele?
vc quer fazer atalho dele no desktop ou não?
se fez atalho, o que colocou como comando nele?

um complicante é que pode ser que o que vc quer executar, necessita sempre de terminal, outras coisas não precisam.

então primeira coisa, poste o "conteúdo" do seu script,ou programa que está tentando executar


Sim, estou na pasta dele e tambem gostaria de fazer um atalho no desktop.
O programa que estou tentando executar e' o matlab 2012.

#!/bin/sh
#
# Name:
# matlab script file for invoking MATLAB
#
# Usage:
# matlab [-h|-help] | [-n | -e]
# [-arch | v=variant | v=arch/variant]
# [-c licensefile] [-display Xdisplay | -nodisplay]
# [-nosplash] [-mwvisual visualid] [-debug]
# [-softwareopengl]
# [-desktop | -nodesktop | -nojvm]
# [-jdb [port]]
# [-r MATLAB_command] [-logfile logfile]
# [-Ddebugger [options]]
#
# Description:
# This Bourne Shell script sets MATLAB environment variables,
# determines the machine architecture, and starts the appropriate
# executable.
#
# Options:
#
# -h,-help
#
# Help. Show command usage
#
# -n
#
# Print out the values of the environment variables and
# arguments passed to the MATLAB executable as well as
# other diagnostic information. MATLAB is not run.
#
# -e
#
# Print ALL environment variables and their values to
# standard output just prior to exiting. This argument
# must have been parsed before exiting for anything to
# be printed. MATLAB is not run. The last possible exiting
# point is just before the MATLAB image would have been
# executed and a status of 0 is returned. If the exit
# status is not 0 on return then the variables and values
# may not be correct.
#
# -arch
#
# Run MATLAB assuming this architecture rather than the
# actual machine architecture.
#
# v=variant
#
# Execute the version of MATLAB found in the directory
# bin/$ARCH/variant instead of bin/$ARCH.
#
# v=arch/variant
#
# Execute the version of MATLAB found in the directory
# bin/arch/variant instead of bin/$ARCH.
#
#
# -c licensefile
#
# Set location of the license file that MATLAB should use.
# It can have the form port@host or be a colon separated
# list of license files. This option will cause the
# LM_LICENSE_FILE and MLM_LICENSE_FILE environment variables
# to be ignored.
#
# -display Xdisplay
#
# Send X commands to X Window Server display, Xdisplay. This
# supersedes the value of the DISPLAY environment variable.
#
# -nodisplay
#
# Do not display any X commands. The DISPLAY environment
# variable is ignored. The MATLAB desktop will not be started.
# However, unless -nojvm is also provided the Java virtual
# machine will be started.
#
# -nosplash
#
# Do not display the splash screen during startup.
#
# -mwvisual visualid
#
# The default X visual to use for figure windows.
# The visualid is a hex number which can be found using
# xdpyinfo.
#
# -softwareopengl
#
# On unix platforms (excluding MAC) this option selects
# between hardware and software opengl implementations.
# When used, this forces MATLAB to link in Mesa software
# opengl libraries.
#
# -debug
#
# Provides debugging information especially for X based
# problems. Should be used only in conjunction with a
# Technical Support Representative from The MathWorks, Inc.
#
# -desktop
#
# Allow the MATLAB desktop to be started by a process
# without a controlling terminal. This is usually a required
# command line argument when attempting to start MATLAB
# from a window manager menu or desktop icon.
#
# -nodesktop
#
# Do not start the MATLAB desktop. Use the current window
# for commands. The Java virtual machine will be started.
#
# -nojvm
#
# Shut off all Java support by not starting the Java virtual
# machine. In particular the MATLAB desktop will not be
# started.
#
# -jdb [port]
#
# Enable remote Java debugger on port (default 4444)
#
# -r MATLAB_command
#
# Start MATLAB and execute the MATLAB command.
#
# -logfile log
#
# Make a copy of any output to the command window in file log.
# This includes all crash reports.
#
# -Ddebugger [options]
#
# Start MATLAB with debugger (e.g. dbx, gdb, dde, xdb, cvd).
# A full path can be specified for debugger. The options
# cover ONLY those that go after the executable to be debugged
# in the syntax of the actual debug command and for most
# debuggers this is very limited. To customize your debugging
# session use a startup file. See your debugger documentation
# for details. Options above that would normally be passed to
# the MATLAB executable should be used as parameters of
# a command inside the debugger like 'run' and not used
# when running the matlab script. If any of the options are
# placed before the -Ddebugger argument they will be
# handled as if they were part of the options after the
# -Ddebugger argument and will be treated as illegal
# options by most debuggers. The MATLAB_DEBUG environment
# variable is set to the filename part of the debugger argument.
#
# NOTE: For certain debuggers like gdb, the SHELL environment
# variable is ALWAYS set to /bin/sh.
#
# Copyright 1984-2010 The MathWorks, Inc.
#__________________________________________________________________________
#
# Enable proper operation on Windows when using a UNIX-compatible shell
# Simply redirects to the Windows starter executable.
#
if [ "$OS" = "Windows_NT" ]; then
arglist=
while [ $# -gt 0 ]; do
# Quote arguments to preserve arguments that contain whitespace
# or single quotes, e.g., -r "disp('hello'); quit"
arglist="$arglist \"$1\""
shift
done
eval exec "\"$0.exe\" $arglist"
fi
#
arg0_=$0
#
# Temporary file that hold MATLABPATH code from .matlab7rc.sh file.
#
temp_file=/tmp/matlab.$LOGNAME.$$.a
#
trap "rm -f $temp_file; exit 1" 1 2 3 15
#
# Some Bourne shells use builtin echo that doesn't preserve backslashes
# in certain cases, e.g. echo "'a\nb'"
#
# Need version of non-builtin echo that will preserve the backslash.
#
if [ -x /usr/ucb/echo ]; then # On Solaris, only /usr/ucb/echo does it.
ECHO=/usr/ucb/echo
elif [ -x /bin/echo ]; then # On Linux and Mac, /bin/echo does it.
ECHO=/bin/echo
else
ECHO=echo
fi

#========================= archlist.sh (start) ============================
#
# usage: archlist.sh
#
# abstract: This Bourne Shell script creates the variable ARCH_LIST.
#
# note(s): 1. This file is always imbedded in another script
#
# Copyright 1997-2007 The MathWorks, Inc.
# $Revision: 1.1.6.3 $ $Date: 2007/11/12 22:52:47 $
#----------------------------------------------------------------------------
#
ARCH_LIST='glnx86 glnxa64 mac maci maci64 sol2 sol64'
#=======================================================================
# Functions:
# check_archlist ()
#=======================================================================
check_archlist () { # Sets ARCH. If first argument contains a valid
# arch then ARCH is set to that value else
# an empty string. If there is a second argument
# do not output any warning message. The most
# common forms of the first argument are:
#
# ARCH=arch
# MATLAB_ARCH=arch
# argument=-arch
#
# Always returns a 0 status.
#
# usage: check_archlist arch=[-]value [noprint]
#
if [ $# -gt 0 ]; then
arch_in=`expr "$1" : '.*=\(.*\)'`
if [ "$arch_in" != "" ]; then
ARCH=`echo "$ARCH_LIST EOF $arch_in" | awk '
#-----------------------------------------------------------------------
{ for (i = 1; i <= NF; i = i + 1)
if ($i == "EOF")
narch = i - 1
for (i = 1; i <= narch; i = i + 1)
if ($i == $NF || "-" $i == $NF) {
print $i
exit
}
}'`
#-----------------------------------------------------------------------
if [ "$ARCH" = "" -a $# -eq 1 ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ' '
echo " Warning: $1 does not specify a valid architecture - ignored . . ."
echo ' '
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
else
ARCH=""
fi
else
ARCH=""
fi
#
return 0
}
#=======================================================================
#========================= archlist.sh (end) ==============================
#
#=======================================================================
# Functions:
# check_rc_file ()
# build_cmd ()
#=======================================================================
check_rc_file () { # Checks rc_file file for minimal features.
# Currently the only thing it checks for is:
#
# .matlab7rc.sh in the file
#
# If it fails the check print a warning message.
# The rc_file is assumed to exist.
#
# Always returns a zero status.
#
# usage: check_rc_file rc_file
#
grep '\.matlab7rc.sh' "$1" > /dev/null 2>&1
if [ $? -ne 0 ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo "---------------------------------------------------------------------------"
echo "Warning: The .matlab7rc.sh file that was sourced is old . . ."
echo " --> file = $1"
echo " "
echo ' Please use $MATLAB/bin/.matlab7rc.sh to update this file.'
echo " --> MATLAB = $MATLAB"
echo "---------------------------------------------------------------------------"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
return 0
}
#=======================================================================
build_cmd () { # Takes the cmd input string and outputs the same
# string correctly quoted to be evaluated again.
#
# Always returns a 0
#
# usage: build_cmd
#

# Use version of echo here that will preserve
# backslashes within $cmd. - g490189

$ECHO "$cmd" | awk '
#----------------------------------------------------------------------------
BEGIN { squote = sprintf ("%c", 39) # set single quote
dquote = sprintf ("%c", 34) # set double quote
}
NF != 0 { newarg=dquote # initialize output string to
# double quote
lookquote=dquote # look for double quote
oldarg = $0
while ((i = index (oldarg, lookquote))) {
newarg = newarg substr (oldarg, 1, i - 1) lookquote
oldarg = substr (oldarg, i, length (oldarg) - i + 1)
if (lookquote == dquote)
lookquote = squote
else
lookquote = dquote
newarg = newarg lookquote
}
printf " %s", newarg oldarg lookquote }'
#----------------------------------------------------------------------------

return 0
}
#=======================================================================
#
#**************************************************************************
# Determine the path of the MATLAB root directory - always one directory
# up from the path to this command.
#**************************************************************************
#
filename=$arg0_
#
# Now it is either a file or a link to a file.
#
cpath=`pwd`

#
# Use it to find the top of the tree
# Skip this if someone wants to override the default
#
if [ "$SOURCE_MATLAB_ENV_FROM" = "" ]; then

#
# Follow up to 8 links before giving up. Same as BSD 4.3
#
n=1
maxlinks=8
while [ $n -le $maxlinks ]
do
#
# Get directory correctly!
#
newdir=`echo "$filename" | awk '
{ tail = $0
np = index (tail, "/")
while ( np != 0 ) {
tail = substr (tail, np + 1, length (tail) - np)
if (tail == "" ) break
np = index (tail, "/")
}
head = substr ($0, 1, length ($0) - length (tail))
if ( tail == "." || tail == "..")
print $0
else
print head
}'`
if [ ! "$newdir" ]; then
newdir="."
fi
(cd "$newdir") > /dev/null 2>&1
if [ $? -ne 0 ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo 'Internal error 1: We could not determine the path of the'
echo ' MATLAB root directory.'
echo ''
echo " original command path = $arg0_"
echo " current command path = $filename"
echo ''
echo ' Please contact:'
echo ''
echo ' MathWorks Technical Support'
echo ''
echo ' for further assistance.'
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit 1
fi
cd "$newdir"
#
# Need the function pwd - not the built in one
#
newdir=`/bin/pwd`
#
newbase=`expr //$filename : '.*/\(.*\)' \| $filename`
lscmd=`ls -l $newbase 2>/dev/null`
if [ ! "$lscmd" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo 'Internal error 2: Could not determine the path of the'
echo ' MATLAB root directory.'
echo ''
echo " original command path = $filename"
echo " current command path = $filename"
echo ''
echo ' Please contact:'
echo ''
echo ' MathWorks Technical Support'
echo ''
echo ' for further assistance.'
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit 1
fi
#
# Check for link portably
#
if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then
filename=`echo "$lscmd" | awk '{ print $NF }'`
else
#
# It's a file
#
dir="$newdir"
command="$newbase"
#
cd "$dir"/..
#
# On Mac OS X, the -P option to pwd causes it to return a resolved path, but
# on 10.5, -P is no longer the default, so we are now passing -P explicitly
#
if [ "$ARCH" = 'mac' -o "$ARCH" = 'maci' -o "$ARCH" = 'maci64' ]; then
MATLABdefault=`/bin/pwd -P`
#
# The Linux version of pwd returns a resolved path by default, and there is
# no -P option
#
else
MATLABdefault=`/bin/pwd`
fi
break
fi
n=`expr $n + 1`
done
if [ $n -gt $maxlinks ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo 'Internal error 3: More than $maxlinks links in path to'
echo " this script. That's too many!"
echo ''
echo " original command path = $filename"
echo " current command path = $filename"
echo ''
echo ' Please contact:'
echo ''
echo ' MathWorks Technical Support'
echo ''
echo ' for further assistance.'
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit 1
fi
else
MATLABdefault="$SOURCE_MATLAB_ENV_FROM"
fi

cd "$cpath"
#
#**************************************************************************
#
# Do not use ARCH if it exists in the environment
#
ARCH=""
#
# Parse the arguments
#
stat="OK"
showenv=0
showenv_all=0
VARIANT=""
VARIANTmatlab="MATLAB"
arglist=""
arglist2=
memmgr=""
desktopflag=1
jvmflag=1
awtflag=1
nodisplay=0
usemesa=0
usemesalinux=0
while [ "$stat" = "OK" -a $# -gt 0 ]; do
case "$1" in
-h|-help)
stat=""
;;
-n)
showenv=1
;;
-e)
showenv_all=1
;;
#-c)
# This now is handled by the * case.
# ;;
-display)
if [ $# -eq 1 ]; then
stat=""
else
arglist="$arglist $1"
shift
isoption=`expr "/$1" : '/\(-.*\)'`
if [ "$isoption" != "" ]; then
stat=""
else
arglist="$arglist $1"
display="$1"
fi
fi
;;
-nodisplay)
arglist="$arglist $1"
nodisplay=1
;;
-noawt)
arglist="$arglist $1"
awtflag=0
;;
-softwareopengl)
usemesa=1;
;;
-softwareopengllinux)
usemesalinux=1;
;;
-memmgr)
if [ $# -eq 1 ]; then
stat=""
else
shift
memmgr=$1
fi
;;
-check_malloc)
memmgr="debug"
;;
-D*)
debugger=`expr "$1" : '-D\(.*\)'`
if [ "$debugger" = "" ]; then
stat=""
else
MATLAB_DEBUG=`expr "//$debugger" : ".*/\(.*\)"`
fi
;;
-jdb)
arglist="$arglist $1"
;;
-nodesktop)
desktopflag=0
;;
-nojvm)
jvmflag=0
;;
-r)
if [ $# -eq 1 ]; then
stat=""
else
arglist="$arglist $1"
shift
cmd="$1"
quoted_cmd=`build_cmd`
# Use version of echo here that will preserve
# backslashes in $quoted_cmd. - g490189
arglist="$arglist `$ECHO $quoted_cmd`"
fi
;;
-timing)
if [ "$ARCH" = "" ]; then
. "$MATLABdefault/bin/util/arch.sh"
fi
if [ -f "$MATLABdefault/bin/$ARCH/cpucount" ]; then
MATLAB_CPUCOUNT=`"$MATLABdefault/bin/$ARCH/cpucount"`
fi
;;
-logfile)
if [ $# -eq 1 ]; then
#
# The MATLAB executable will check that there is no logfile
#
arglist="$arglist $1"
else
#
# The MATLAB executable will check if the file can be opened for writing
#
arglist="$arglist $1 $2"
shift
fi
;;
v=*/*)
foundVariant=0
#
# Test options if no debugger.
#
if [ "$debugger" = "" ]; then
#
# Check for variant
#
value=`expr "$1" : 'v=\(.*\)/.*'`
value2=`expr "$1" : 'v=.*/\(.*\)'`
arch=$ARCH
check_archlist argument=$value noprint
if [ "$ARCH" != "" -a -f "$MATLABdefault/bin/$value/$value2/MATLAB" ]; then
VARIANT=$value2
VARIANTmatlab=$VARIANT/MATLAB
foundVariant=1
else
ARCH=$arch
fi
fi
if [ "$foundVariant" = "0" ]; then
arglist="$arglist $1"
fi
;;
v=*)
foundVariant=0
#
# Test options if no debugger.
#
if [ "$debugger" = "" ]; then
value=`expr "$1" : 'v=\(.*\)'`
#
# Check for variant
#
if [ "$ARCH" = "" ]; then
. "$MATLABdefault/bin/util/arch.sh"
fi
if [ -f "$MATLABdefault/bin/$ARCH/$value/MATLAB" ]; then
VARIANT=$value
VARIANTmatlab=$VARIANT/MATLAB
foundVariant=1
fi
fi
if [ "$foundVariant" = "0" ]; then
arglist="$arglist $1"
fi
;;
-*)
found=0
#
# Test options if no debugger.
#
if [ "$debugger" = "" ]; then
#
# Check for -arch
#
arch=$ARCH
check_archlist argument=$1 noprint
if [ "$ARCH" != "" ]; then
found=1
else
ARCH=$arch
fi
fi
if [ "$found" = "0" ]; then
arglist="$arglist $1"
fi
;;
*)
arglist="$arglist $1"
;;
esac
shift
done
#
# Check for errors
#
if [ "$stat" != "OK" -a "$showenv" != "1" ]; then # An error occurred.
#
if [ "$stat" != "" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ""
echo " ${command}: $stat"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
if [ "$ARCH" = "" ]; then
. "$MATLABdefault/bin/util/arch.sh"
fi
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ""
echo " Usage: ${command} [-h|-help] | [-n | -e]"
echo " [-arch | v=variant | v=arch/variant]"
echo " [-c licensefile] [-display Xdisplay | -nodisplay]"
echo " [-nosplash] [-mwvisual visualid] [-debug] [-softwareopengl]"
echo " [-desktop | -nodesktop | -nojvm]"
echo " [-r MATLAB_command] [-logfile log]"
echo " [-Ddebugger [options]]"
echo ""
echo " -h|-help - Display arguments."
echo " -n - Display final environment variables,"
echo " arguments, and other diagnostic"
echo " information. MATLAB is not run."
echo " -e - Display ALL the environment variables and"
echo " their values to standard output. MATLAB"
echo " is not run. If the exit status is not"
echo " 0 on return then the variables and values"
echo " may not be correct."
echo " -arch - Start MATLAB assuming architecture arch."
echo " v=variant - Start the version of MATLAB found"
echo " in bin/$ARCH/variant instead of bin/$ARCH."
echo " v=arch/variant - Start the version of MATLAB found"
echo " in bin/arch/variant instead of bin/$ARCH."
echo " -c licensefile - Set location of the license file that MATLAB"
echo " should use. It can have the form port@host or"
echo " be a colon separated list of license files."
echo " The LM_LICENSE_FILE and MLM_LICENSE_FILE"
echo " environment variables will be ignored."
echo " -display Xdisplay - Send X commands to X server display, Xdisplay."
echo " -nodisplay - Do not display any X commands. The MATLAB"
echo " desktop will not be started. However, unless"
echo " -nojvm is also provided the Java virtual machine"
echo " will be started."
echo " -nosplash - Do not display the splash screen during startup."
echo " -mwvisual visualid - The default X visual to use for figure windows."
echo " -debug - Provide debugging information especially for X"
echo " based problems."
echo " -desktop - Allow the MATLAB desktop to be started by a"
echo " process without a controlling terminal. This is"
echo " usually a required command line argument when"
echo " attempting to start MATLAB from a window manager"
echo " menu or desktop icon."
echo " -nodesktop - Do not start the MATLAB desktop. Use the current"
echo " terminal for commands. The Java virtual machine"
echo " will be started."
echo " -nojvm - Shut off all Java support by not starting the"
echo " Java virtual machine. In particular the MATLAB"
echo " desktop will not be started."
echo " -jdb [port] - Enable remote Java debugging on port (default 4444)"
echo " -r MATLAB_command - Start MATLAB and execute the MATLAB_command."
echo " -logfile log - Make a copy of any output to the command window"
echo " in file log. This includes all crash reports."
echo " -Ddebugger [options] - Start debugger to debug MATLAB."
echo ""
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if [ "$showenv_all" = "1" ]; then
env
fi
exit 1
fi
#
# Determine what is set in the environment
#
AUTOMOUNT_MAPenv="$AUTOMOUNT_MAP"
DISPLAYenv="$DISPLAY"
TOOLBOXenv="$TOOLBOX"
MATLABPATHenv="$MATLABPATH"
XAPPLRESDIRenv="$XAPPLRESDIR"
XKEYSYMDBenv="$XKEYSYMDB"
MATLAB_MEM_MGRenv="$MATLAB_MEM_MGR"
SHELLenv="$SHELL"
#
# Set the defaults - MATLABdefault is determined above.
#
AUTOMOUNT_MAPdefault=''
DISPLAYdefault=''
ARCHdefault=''
TOOLBOXdefault='$MATLAB/toolbox'
MATLABPATHdefault=''
#
XAPPLRESDIRdefault='$MATLAB/X11/app-defaults'
XKEYSYMDBdefault='$MATLAB/X11/app-defaults/XKeysymDB'
#
MATLAB_MEM_MGRdefault=''
#
SHELLdefault='$SHELL'
#
MATLAB_UTIL_DIRdefault=$MATLABdefault/bin/util
#
# Feature state variables
#
#--------------------------------------------------------------------------
#
# Source file .matlab7rc.sh and get values for the following environment
# variables
#
# ARCH (machine architecture)
# AUTOMOUNT_MAP (Path prefix map for automounting)
# DISPLAY (DISPLAY variable for X Window System)
# LDPATH_PREFIX (path(s) that appear at the start of
# LD_LIBRARY_PATH)
# LDPATH_SUFFIX (path(s) that appear at the end of
# LD_LIBRARY_PATH)
# LD_LIBRARY_PATH (load library path - the name
# LD_LIBRARY_PATH is platform dependent)
# MATLAB (MATLAB root directory)
# MATLABPATH (MATLAB search path)
# SHELL (which shell to use for ! and unix
# command in MATLAB)
# TOOLBOX (toolbox path)
# XAPPLRESDIR (X Application Resource Directory)
# XKEYSYMDB (X keysym Database file)
#
# The search order for .matlab7rc.sh is:
#
# . (current directory)
# $HOME (users home directory)
# $MATLAB/bin (MATLAB bin directory)
#
if [ -f .matlab7rc.sh ]; then
SOURCED_DIR='.'
SOURCED_DIReval=`pwd`
. "$cpath"/.matlab7rc.sh
elif [ -f "$HOME"/.matlab7rc.sh ]; then
SOURCED_DIR='$HOME'
SOURCED_DIReval=$HOME
. "$HOME"/.matlab7rc.sh
elif [ -f "$MATLABdefault/bin/.matlab7rc.sh" ]; then
#
# NOTE: At this point we will use the MATLAB determined earlier to
# source the file. After that the value in that file if not
# null will be used.
#
SOURCED_DIR='$MATLAB/bin'
SOURCED_DIReval=$MATLABdefault/bin
. "$MATLABdefault/bin/.matlab7rc.sh"
else
SOURCED_DIR=
MATLAB_UTIL_DIR=$MATLAB_UTIL_DIRdefault
#
# arch.sh requires MATLAB - save temporarily
#
MATLABsave="$MATLAB"
MATLAB="$MATLABdefault"
#
. "$MATLAB_UTIL_DIR/arch.sh"
if [ "$ARCH" = "unknown" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo '^G Sorry! We could not determine the machine architecture for your'
echo ' host. Please contact:'
echo ''
echo ' MathWorks Technical Support'
echo ''
echo ' for further assistance.'
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
exit 1
fi
MATLAB="$MATLABsave"
#
ARCHdefault=$ARCH
fi
#
#--------------------------------------------------------------------------
#
# Determine the final values for the following variables
#
# ARCH (machine architecture)
# AUTOMOUNT_MAP (Path prefix map for automounting)
# DISPLAY (DISPLAY variable for X Window System)
# MATLAB (MATLAB root directory)
# MATLAB_MEM_MGR (Type of memory manager)
# MATLAB_DEBUG (name of the debugger from -Ddebugger argument)
# MATLABPATH (MATLAB search path)
# SHELL (which shell to use for ! and unix
# command in MATLAB)
# TOOLBOX (toolbox path)
# XAPPLRESDIR (X Application Resource Directory)
# XKEYSYMDB (X keysym Database file)
#
rcfile='r '
environ='e '
script='s '
argument='a '
rcfilep='rs'
environp='es'
#
# Sourced a .matlab7rc.sh file
#
if [ "$SOURCED_DIR" != "" ]; then
if [ "$AUTOMOUNT_MAP" != "" ]; then
if [ "$AUTOMOUNT_MAPenv" != "" ]; then
AUTOMOUNT_MAPmode="$environ"
else
AUTOMOUNT_MAPmode="$rcfile"
fi
else
AUTOMOUNT_MAPmode="$script"
AUTOMOUNT_MAP="$AUTOMOUNT_MAPdefault"
fi
#
if [ "$MATLAB" != "" ]; then
MATLABmode="$rcfile"
else
MATLABmode="$script"
MATLAB="$MATLABdefault"
fi
if [ "$AUTOMOUNT_MAP" != "" ]; then
MATLAB=`echo $MATLAB $AUTOMOUNT_MAP | awk '
{if (substr($1,1,length($2)) == $2)
if (NF == 4) # a -> b
print $NF substr($1,length($2) + 1)
else # a ->
print substr($1,length($2) + 1)
else
print $1}'`
fi
#
if [ "$display" != "" ]; then
DISPLAYmode="$argument"
DISPLAY="$display"
elif [ "$DISPLAY" != "" ]; then
if [ "$DISPLAYenv" = "$DISPLAY" ]; then
DISPLAYmode="$environ"
else
DISPLAYmode="$rcfile"
fi
else
DISPLAYmode="$script"
DISPLAY="`eval echo $DISPLAYdefault`"
fi
#
if [ "$ARCH" != "" ]; then
ARCHmode="$rcfile"
else
ARCHmode="$script"
ARCH="$ARCHdefault"
fi
#
if [ "$TOOLBOX" != "" ]; then
if [ "$TOOLBOXenv" = "$TOOLBOX" ]; then
TOOLBOXmode="$environ"
else
TOOLBOXmode="$rcfile"
fi
else
TOOLBOXmode="$script"
TOOLBOX="`eval echo $TOOLBOXdefault`"
fi
#
if [ "$XAPPLRESDIR" != "" ]; then
XAPPLRESDIR="`eval echo $XAPPLRESDIR`"
if [ "$XAPPLRESDIRenv" = "$XAPPLRESDIR" ]; then
XAPPLRESDIRmode="$environ"
else
XAPPLRESDIRmode="$rcfile"
fi
else
XAPPLRESDIRmode="$script"
XAPPLRESDIR="`eval echo $XAPPLRESDIRdefault`"
fi
#
if [ "$XKEYSYMDB" != "" ]; then
XKEYSYMDB="`eval echo $XKEYSYMDB`"
if [ "$XKEYSYMDBenv" = "$XKEYSYMDB" ]; then
XKEYSYMDBmode="$environ"
else
XKEYSYMDBmode="$rcfile"
fi
else
XKEYSYMDBmode="$script"
XKEYSYMDB="`eval echo $XKEYSYMDBdefault`"
fi
#
if [ "$MATLABPATH" != "" ]; then
if [ "$MATLABPATHenv" = "$MATLABPATH" ]; then
MATLABPATHmode="$environp"
else
MATLABPATHmode="$rcfilep"
fi
else
MATLABPATHmode="$script"
MATLABPATH="`eval echo $MATLABPATHdefault`"
fi
#
# For MATLAB_MEM_MGR:
#
# 1. memmgr manager argument
# 2. check_malloc argument
# 3. rcfile (not currently set)
# 4. environment
# 5. default (empty)
#
if [ "$memmgr" != "" ]; then
MATLAB_MEM_MGRmode="$argument"
MATLAB_MEM_MGR=$memmgr
elif [ "$MATLAB_MEM_MGR" != "" ]; then
if [ "$MATLAB_MEM_MGRenv" = "$MATLAB_MEM_MGR" ]; then
MATLAB_MEM_MGRmode="$environ"
else
MATLAB_MEM_MGRmode="$rcfile"
fi
else
MATLAB_MEM_MGRmode="$script"
MATLAB_MEM_MGR="$MATLAB_MEM_MGRdefault"
fi
#
if [ "$MATLAB_DEBUG" = "" ]; then
MATLAB_DEBUGmode="$script"
else
MATLAB_DEBUGmode="$argument"
fi
#
if [ "$SHELL" != "" ]; then
if [ "$SHELLenv" = "$SHELL" ]; then
SHELLmode="$environ"
else
SHELLmode="$rcfile"
fi
else
SHELLmode="$script"
SHELL="`eval echo $SHELLdefault`"
fi
else
if [ "$AUTOMOUNT_MAPenv" != "" ]; then
AUTOMOUNT_MAPmode="$environ"
AUTOMOUNT_MAP="$AUTOMOUNT_MAPenv"
else
AUTOMOUNT_MAPmode="$script"
AUTOMOUNT_MAP="$AUTOMOUNT_MAPdefault"
fi
MATLABmode="$script"
if [ "$AUTOMOUNT_MAP" != "" ]; then
MATLAB=`echo $MATLABdefault $AUTOMOUNT_MAP | awk '
{if (substr($1,1,length($2)) == $2)
if (NF == 4) # a -> b
print $NF substr($1,length($2) + 1)
else # a ->
print substr($1,length($2) + 1)
else
print $1}'`
else
MATLAB="$MATLABdefault"
fi
if [ "$display" != "" ]; then
DISPLAYmode="$argument"
DISPLAY="$display"
else
DISPLAYmode="$environ"
DISPLAY="$DISPLAYenv"
fi
ARCHmode="$script"
ARCH="$ARCHdefault"
TOOLBOXmode="$script"
TOOLBOX="`eval echo $TOOLBOXdefault`"
XAPPLRESDIRmode="$script"
XAPPLRESDIR="`eval echo $XAPPLRESDIRdefault`"
XKEYSYMDBmode="$script"
XKEYSYMDB="`eval echo $XKEYSYMDBdefault`"
if [ "$MATLABPATHenv" != "" ]; then
MATLABPATHmode="$environp"
MATLABPATH="$MATLABPATHenv"
else
MATLABPATHmode="$script"
MATLABPATH="`eval echo $MATLABPATHdefault`"
fi
if [ "$check_malloc" = "1" ]; then
MATLAB_MEM_MGRmode="$argument"
MATLAB_MEM_MGR='debug'
elif [ "$MATLAB_MEM_MGR" != "" ]; then
MATLAB_MEM_MGRmode="$environ"
else
MATLAB_MEM_MGRmode="$script"
MATLAB_MEM_MGR="$MATLAB_MEM_MGRdefault"
fi
if [ "$MATLAB_DEBUG" = "" ]; then
MATLAB_DEBUGmode="$script"
else
MATLAB_DEBUGmode="$argument"
fi
SHELLmode="$environ"
SHELL="$SHELLenv"
fi
#
#--------------------------------------------------------------------------
#
# Check rc_file
#
if [ "$SOURCED_DIR" = '.' ]; then
check_rc_file "$cpath"/.matlab7rc.sh
elif [ "$SOURCED_DIR" = '$HOME' ]; then
check_rc_file "$HOME"/.matlab7rc.sh
fi

#
# Use MATLAB instead of matlab for the executable
# A more invasive change (to be made long-term) involves setmwe
#
VARIANTmatlab=`echo "$VARIANTmatlab" | sed 's|matlab$|MATLAB|'`

#
# Determine the final values for the following variables
#
# LD_LIBRARY_PATH (load library path - the name
# LD_LIBRARY_PATH is platform dependent)
# _JVM_THREADS_TYPE (type of Java virtual machine threads)
#
#--------------------------------------------------------------------------

#
# Decide whether to put -nojvm or -nodesktop back on the argument list.
# Check the mac first.
#
if [ "$ARCH" = 'mac' -o "$ARCH" = 'maci' -o "$ARCH" = 'maci64' ]; then
#
# If the user did not explicitly set v=arch or v=arch/variant,
# then launch the executable via the Mac OS X package by default, so that
# resources and executable icons can be automatically found by the system.
# Filter out noawt and nodisplay.
#
if [ "$foundVariant" = "" -a "$awtflag" = '1' -a "$nodisplay" = '0' ]; then
VARIANT=../../Contents/MacOS
VARIANTmatlab=$VARIANT/MATLAB_$ARCH
fi

#
# Make sure the MACI64 environment variable is set to 0 when running as maci
# so that other processes (MEX, mcc, etc.) all know to run as 32-bit (see arch.sh).
#
if [ "$ARCH" = 'maci' -a "$MACI64" = "" ]; then
maci64="0"
MACI64=$maci64
export MACI64
fi
fi
if [ "$jvmflag" = "0" ]; then
arglist="$arglist -nojvm"
elif [ "$desktopflag" = "0" ]; then
arglist="$arglist -nodesktop"
fi

#
# Determine the java vm path for each platform.
#
case "$ARCH" in
sol2)
JARCH="sparc"
;;
sol64)
JARCH="sparcv9"
;;
glnx86)
JARCH="i386"
;;
glnxa64)
JARCH="amd64"
;;
*)
JARCH=$ARCH
;;
esac
#
if [ "$ARCH" = 'mac' -o "$ARCH" = 'maci' -o "$ARCH" = 'maci64' ]; then
DEFAULT_JRE_LOC=/System/Library/Frameworks/JavaVM.framework
else
DEFAULT_JRE_LOC=$MATLAB/sys/java/jre/$ARCH/jre
fi

# No more symlinks to jre
if [ "X$MATLAB_JAVA" = "X" ]; then
MATLAB_JAVA_CFG=`head -n 1 "${DEFAULT_JRE_LOC}.cfg" 2>/dev/null`
else
MATLAB_JAVA_CFG=$MATLAB_JAVA
fi
JRE_LOC=$DEFAULT_JRE_LOC${MATLAB_JAVA_CFG:-}
if [ ! -d "$JRE_LOC" ]; then
JRE_LOC=$MATLAB_JAVA_CFG
fi
#
# Threads
#
case "$ARCH" in
*)
JLIB=lib
;;
esac
JAVA_VM_PATH="$JRE_LOC/$JLIB/$JARCH/native_threads"
#
# JVM
#
JVM_LIB_ARCH="$JRE_LOC/$JLIB/$JARCH"
if [ "$ARCH" = "glnxa64" -o "$ARCH" = "sol64" ]; then
VM_FLAVOR=server
else
VM_FLAVOR=client
fi
if [ -d "$JVM_LIB_ARCH/$VM_FLAVOR" ]; then
JAVA_VM_PATH="$JAVA_VM_PATH:$JVM_LIB_ARCH/$VM_FLAVOR"
elif [ -d "$JVM_LIB_ARCH/hotspot" ]; then
JAVA_VM_PATH="$JAVA_VM_PATH:$JVM_LIB_ARCH/hotspot"
elif [ -d "$JVM_LIB_ARCH/classic" ]; then
JAVA_VM_PATH="$JAVA_VM_PATH:$JVM_LIB_ARCH/classic"
_JVM_THREADS_TYPE=native_threads; export _JVM_THREADS_TYPE
fi
JAVA_VM_PATH="$JAVA_VM_PATH:$JRE_LOC/$JLIB/$JARCH"

#
#--------------------------------------------------------------------------
#
# Check for FVWM window manager on Linux

# or in a glnx86) switch case
if [ "$ARCH" = "glnx86" -o "$ARCH" = "glnxi64" ] ; then
if [ -f "$MATLAB/bin/$ARCH/fvwmfix" ]; then
"$MATLAB/bin/$ARCH/fvwmfix" -quiet
fi

fi


#
# Augment with AWT Motif default locale resource files
#
XFILESEARCHPATH="$JRE_LOC/lib/locale/%L/%T/%N%S:$XFILESEARCHPATH"
export XFILESEARCHPATH
#
# Initialize LDPATH_MATLAB to include any VARIANT directory
#
if [ "$VARIANT" != "" ]; then
BIN_DIRS=$MATLAB/bin/$ARCH/$VARIANT:$MATLAB/bin/$ARCH
else
BIN_DIRS=$MATLAB/bin/$ARCH
fi

LDPATH_MATLAB=$MATLAB/sys/os/$ARCH:$BIN_DIRS:$MATLAB/extern/lib/$ARCH

#
# If directory runtime/$ARCH exists add to LD_LIBRARY_PATH. Needed for
# compiler and related builders.
#
if [ -d "$MATLAB/runtime/$ARCH" ]; then
LDPATH_MATLAB=$LDPATH_MATLAB:$MATLAB/runtime/$ARCH
fi

#
# Determine how to interpret the $usemesa variable.
#
# First version: we tested for GLX, and guessed in this startup script.
# Second version: we tested at runtime, and used RPATH in glren.so
# Third version: Too many 3rd party libraries, use command line
# option to select.

case "$ARCH" in
mac*)
# MAC does not have this option
if [ "$usemesa" = "1" ]; then
echo "Option -softwareopengl does not apply on MAC."
fi
;;
*)
# Look for usemesalinux startup option.
if [ "$usemesalinux" = "1" ]; then
case "$ARCH" in
glnx86)
usemesa=1;
;;
glnxa64)
usemesa=1;
;;
esac
fi
# test if we have no GLX extension, and set usemesa to 1
# we used to use 'xdpyinfo', but that would sometimes hang.
# We can't query for glxinfo because that is also unreliable.

if [ "$usemesa" = "1" ]; then
LDPATH_MATLAB=$MATLAB/sys/opengl/lib/$ARCH:$LDPATH_MATLAB
echo "MATLAB is selecting SOFTWARE OPENGL rendering."
# else
# echo "MATLAB will try and use hardware opengl."
fi
esac

#
#-------------------------------------------------------------------------
#
# Determine the osg library path
#
# Note: Must come before LD_LIBRARY_PATH so MAC can add it to it library path
# as it does not support RPATH yet.

osg="$MATLAB/sys/openscenegraph/lib/$ARCH"

OSG_LD_LIBRARY_PATH=$osg
export OSG_LD_LIBRARY_PATH

#
#--------------------------------------------------------------------------
#
# Determine <final_load_library_path> for each platform
#
case "$ARCH" in
sol*|glnx*)
LD_LIBRARY_PATH="`eval echo $LD_LIBRARY_PATH`"
LDPATH_MATLAB=$LDPATH_MATLAB:$JAVA_VM_PATH
if [ "$LD_LIBRARY_PATH" != "" ]; then
LD_LIBRARY_PATH=$LDPATH_MATLAB:$LD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
else
LD_LIBRARY_PATH=$LDPATH_MATLAB
LD_LIB_PATHmode="$script"
fi
if [ "$LDPATH_PREFIX" != "" ]; then
LDPATH_PREFIX="`eval echo $LDPATH_PREFIX`"
if [ "$LDPATH_PREFIX" != "" ]; then
LD_LIBRARY_PATH=$LDPATH_PREFIX:$LD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
fi
fi
if [ "$LDPATH_SUFFIX" != "" ]; then
LDPATH_SUFFIX="`eval echo $LDPATH_SUFFIX`"
if [ "$LDPATH_SUFFIX" != "" ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LDPATH_SUFFIX
LD_LIB_PATHmode="$rcfilep"
fi
fi
# Fix for Sun BugID 4663077
if [ "`uname -r`" = "5.8" ]; then
LD_LIBRARY_PATH=/usr/lib/lwp:$LD_LIBRARY_PATH
fi
export LD_LIBRARY_PATH
;;
mac*)
# DYLD_BIND_AT_LAUNCH=1
# export DYLD_BIND_AT_LAUNCH
DYLD_LIBRARY_PATH="`eval echo $DYLD_LIBRARY_PATH`"
LDPATH_MATLAB=$LDPATH_MATLAB
if [ "$DYLD_LIBRARY_PATH" != "" ]; then
DYLD_LIBRARY_PATH=$LDPATH_MATLAB:$DYLD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
else
DYLD_LIBRARY_PATH=$LDPATH_MATLAB
LD_LIB_PATHmode="$script"
fi
DYLD_FRAMEWORK_PATH="`eval echo $DYLD_FRAMEWORK_PATH`"
if [ "$DYLD_FRAMEWORK_PATH" != "" ]; then
DYLD_FRAMEWORK_PATH=$LDPATH_MATLAB:$DYLD_FRAMEWORK_PATH
else
DYLD_FRAMEWORK_PATH=$LDPATH_MATLAB
fi
if [ "$LDPATH_PREFIX" != "" ]; then
LDPATH_PREFIX="`eval echo $LDPATH_PREFIX`"
if [ "$LDPATH_PREFIX" != "" ]; then
DYLD_LIBRARY_PATH=$LDPATH_PREFIX:$DYLD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
fi
fi
if [ "$LDPATH_SUFFIX" != "" ]; then
LDPATH_SUFFIX="`eval echo $LDPATH_SUFFIX`"
if [ "$LDPATH_SUFFIX" != "" ]; then
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$LDPATH_SUFFIX
LD_LIB_PATHmode="$rcfilep"
fi
fi
if [ -d "$osg" ]; then
DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$osg
fi
export DYLD_LIBRARY_PATH
export DYLD_FRAMEWORK_PATH
;;
*)
LD_LIBRARY_PATH="`eval echo $LD_LIBRARY_PATH`"
LDPATH_MATLAB=$LDPATH_MATLAB
if [ "$LD_LIBRARY_PATH" != "" ]; then
LD_LIBRARY_PATH=$LDPATH_MATLAB:$LD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
else
LD_LIBRARY_PATH=$LDPATH_MATLAB
LD_LIB_PATHmode="$script"
fi
if [ "$LDPATH_PREFIX" != "" ]; then
LDPATH_PREFIX="`eval echo $LDPATH_PREFIX`"
if [ "$LDPATH_PREFIX" != "" ]; then
LD_LIBRARY_PATH=$LDPATH_PREFIX:$LD_LIBRARY_PATH
LD_LIB_PATHmode="$rcfilep"
fi
fi
if [ "$LDPATH_SUFFIX" != "" ]; then
LDPATH_SUFFIX="`eval echo $LDPATH_SUFFIX`"
if [ "$LDPATH_SUFFIX" != "" ]; then
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LDPATH_SUFFIX
LD_LIB_PATHmode="$rcfilep"
fi
fi
export LD_LIBRARY_PATH
;;
esac

#--------------------------------------------------------------------------
#
# Increase the data segment size to unlimited for Maple libraries.
#
if [ "$ARCH" = "mac" -o "$ARCH" = "maci" -o "$ARCH" = "maci64" ]; then
ulimit -d unlimited
fi

#
#--------------------------------------------------------------------------
#
# SHELL must currently be defined. (problem showed up on Solaris)
#
if [ "$SHELL" = "" ]; then
SHELLmode="$script"
SHELL="/bin/sh"
fi
#
#--------------------------------------------------------------------------
#
# Be sure that X sees the Matlab Resource Database (X11/R5).
#
# The critical thing that can block access to the $XAPPLRESDIR/Matlab
# database is the existence of the XUSERFILESEARCHPATH variable. If
# it exists then it does NOT automatically use $XAPPLRESDIR/Matlab even if
# it is not part of the XUSERFILESEARCHPATH path variable.
#
if [ "$XUSERFILESEARCHPATH" != "" ]; then
XAPPLRESDIRmode="$environp"
XUSERFILESEARCHPATH=$XUSERFILESEARCHPATH:$XAPPLRESDIR/%N
export XUSERFILESEARCHPATH
fi
#
BASEMATLABPATH=$MATLABPATH; export BASEMATLABPATH
#
#--------------------------------------------------------------------------
#
# Add on $HOME/matlab if available and $MATLAB/toolbox/local
#

if [ -d "$HOME"/matlab ]; then
MATLABPATH=$MATLABPATH:"$HOME"/matlab
fi
MATLABPATH=$MATLABPATH:$MATLAB/toolbox/local
#
# Remove any leading ":" character from the path. Can't use awk
# here because it fails on very long paths.
#
MATLABPATH=`echo $MATLABPATH | sed 's/^://'`
#
#--------------------------------------------------------------------------
#
# Check OS version
#
if [ -f "$MATLAB_UTIL_DIR/oscheck.sh" ]; then
. "$MATLAB_UTIL_DIR/oscheck.sh"
if [ "$oscheck_status" = "1" ]; then
exit 1
fi
fi
#
#--------------------------------------------------------------------------
#
# Set a floor on the maximum number of file descriptors that can be opened.
# The user can always set something higher before calling MATLAB.
#
FLOOR_OPEN_FILES=1024
MAX_OPEN_FILES=`ulimit -n`
MAX_OPEN_FILESmode='e '
if [ $MAX_OPEN_FILES -lt $FLOOR_OPEN_FILES ]; then
ulimit -n $FLOOR_OPEN_FILES 2>/dev/null
if [ $? -eq 0 ]; then
MAX_OPEN_FILESmode='s '
MAX_OPEN_FILES=`ulimit -n`
fi
fi
#
#--------------------------------------------------------------------------
#
if [ "$showenv" = "1" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(
undefined='(variable not defined)'
echo '------------------------------------------------------------------------'
if [ "$SOURCED_DIR" != "" ]; then
echo "-> (.matlab7rc.sh) sourced from directory (DIR = $SOURCED_DIR)"
echo "-> DIR = $SOURCED_DIReval"
else
echo "-> (.matlab7rc.sh) not found."
fi
echo '------------------------------------------------------------------------'
echo ' a = argument e = environment r = rcfile s = script'
echo '------------------------------------------------------------------------'
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo "-> $MATLABmode MATLAB = $MATLAB"
echo "-> LM_LICENSE_FILE = ${LM_LICENSE_FILE-$undefined}"
echo "-> MLM_LICENSE_FILE = ${MLM_LICENSE_FILE-$undefined}"
echo "-> $AUTOMOUNT_MAPmode AUTOMOUNT_MAP = $AUTOMOUNT_MAP"
echo "-> $DISPLAYmode DISPLAY = $DISPLAY"
echo "-> $ARCHmode ARCH = $ARCH"
echo "-> $TOOLBOXmode TOOLBOX = $TOOLBOX"
if [ "$XUSERFILESEARCHPATH" != "" ]; then
echo "-> $XAPPLRESDIRmode XUSERFILESEARCHPATH = $XUSERFILESEARCHPATH"
else
echo "-> $XAPPLRESDIRmode XAPPLRESDIR = $XAPPLRESDIR"
fi
echo "-> $XKEYSYMDBmode XKEYSYMDB = $XKEYSYMDB"
#
# For maximum number of open file descriptors
#
echo "-> $MAX_OPEN_FILESmode MAX_OPEN_FILES = $MAX_OPEN_FILES"
#
# For java
#
echo "-> s _JVM_THREADS_TYPE = $_JVM_THREADS_TYPE"
echo "-> e MATLAB_JAVA = $MATLAB_JAVA"
#
echo "-> $MATLAB_MEM_MGRmode MATLAB_MEM_MGR = $MATLAB_MEM_MGR"
echo "-> $MATLAB_DEBUGmode MATLAB_DEBUG = $MATLAB_DEBUG"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
case "$ARCH" in
mac*)
echo "-> $LD_LIB_PATHmode DYLD_LIBRARY_PATH = $DYLD_LIBRARY_PATH"
;;
*)
echo "-> $LD_LIB_PATHmode LD_LIBRARY_PATH = $LD_LIBRARY_PATH"
;;
esac
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo "-> $argument arglist = $arglist"
echo "-> $SHELLmode SHELL = $SHELL"
echo "-> e PATH = $PATH"
echo " " ) > "$temp_file"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
#
# Cannot locate JRE
#
if [ ! -d "$JRE_LOC" -a "$jvmflag" = "1" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(
echo "---------------------------------------------------------------------------"
echo "Warning: Cannot locate Java Runtime Environment (JRE) . . ."
echo " "
echo " 1. Either a correct JRE was not available for redistribution when"
echo " this release was shipped, in which case you should refer to the"
echo " Release Notes for additional information about how to get it."
echo " "
echo " 2. Or you have tried to use the MATLAB_JAVA environment variable"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if [ "$showenv" != "1" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo " to specify an alternate JRE, but MATLAB cannot find it. Please"
echo " run 'matlab -n' to determine what value you are using for"
echo " MATLAB_JAVA and fix accordingly."
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
else
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo " to specify an alternate JRE, but MATLAB cannot find it. Check"
echo " the value of MATLAB_JAVA above and fix accordingly."
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
echo "---------------------------------------------------------------------------" ) >> "$temp_file"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if [ "$showenv" != "1" ]; then
cat "$temp_file"
rm -f "$temp_file"
else
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo " " >> "$temp_file"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
fi
#
if [ "$showenv" = "1" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(
echo "-> $MATLABPATHmode MATLABPATH = (initial version)"
if [ "$MATLABPATH" != "" ]; then
for dir in `echo $MATLABPATH | tr ':' ' '`
do
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo " $dir"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
done
fi
#
echo " "
if [ -f "$MATLAB/bin/$ARCH/$VARIANTmatlab" -a -f "$MATLAB/bin/ldd" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo '-> $MATLAB/bin/'"$ARCH/$VARIANTmatlab shared library information -"
echo "|-----------------------------------------------------------------------"
"$MATLAB/bin/ldd" -$ARCH "$MATLAB/bin/$ARCH/$VARIANTmatlab" 2>/dev/null | awk '{ print "| " $0 }'
echo "|-----------------------------------------------------------------------"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
#
echo " "
echo '-> $MATLAB/toolbox/local/pathdef.m -'
echo "|-----------------------------------------------------------------------"
if [ -f "$MATLAB/toolbox/local/pathdef.m" ]; then
cat "$MATLAB/toolbox/local/pathdef.m" | awk '{ print "| " $0 }'
else
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ' Warning: $MATLAB/toolbox/local/pathdef.m not found . . .'
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
fi
echo "|-----------------------------------------------------------------------"
#
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo '------------------------------------------------------------------------') >> "$temp_file"
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
more "$temp_file"
rm -f "$temp_file"
if [ "$showenv_all" != "1" ]; then
exit 0
fi
fi
#
# Export the variables
#
export MATLAB
export AUTOMOUNT_MAP
export DISPLAY
export ARCH
export TOOLBOX
export MATLABPATH
export XAPPLRESDIR
export XKEYSYMDB
export MATLAB_MEM_MGR
export MATLAB_DEBUG
export SHELL

#
# Start MATLAB unless we were asked to simply set the environment
#
if [ "$SOURCE_MATLAB_ENV_FROM" = "" ]; then

if [ ! -d "$MATLAB/bin/$ARCH" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo ' matlab: No MATLAB bin directory for this machine architecture.'
echo ''
echo " ARCH = $ARCH"
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if [ "$showenv_all" = "1" ]; then
env
fi
exit 1
fi
#
if [ ! -f "$MATLAB/bin/$ARCH/$VARIANTmatlab" ]; then
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
echo ''
echo " matlab: No MATLAB executable for this machine architecture."
echo ''
echo " $MATLAB/bin/$ARCH/$VARIANTmatlab does not exist!"
echo ''
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if [ "$showenv_all" = "1" ]; then
env
fi
exit 1
fi
#
exec_path=$MATLAB/bin/$ARCH/$VARIANTmatlab
#
if [ "$debugger" != "" ]; then
if [ "$MATLAB_DEBUG" = "gdb" -o "$MATLAB_DEBUG" = "xxgdb" ]; then
SHELL=/bin/sh; export SHELL
fi
elif [ "$MATLAB_CPUCOUNT" != "" ]; then
if [ -f "$MATLAB/bin/$ARCH/cpucount" ]; then
cpucount=`"$MATLAB/bin/$ARCH/cpucount"`
arglist="$arglist -timing $MATLAB_CPUCOUNT $cpucount"
fi
fi

# Special configuration for the memory manager.
# The memory manager is not configurable if the script is missing.
memcheck_path=$MATLAB/bin/$ARCH/memcheck
if [ ! -f "$memcheck_path" ]; then
unset MATLAB_MEM_MGR
unset memcheck_path
fi

if [ "$showenv_all" = "1" ]; then
env
exit 0
elif [ "$MWE_INSTALL" != "" ]; then
echo "Information enclosed between the next two dashed lines is for internal use only!"
echo "-------------------------------------------------------------------"
echo Launching MATLAB_MEM_MGR=\"$MATLAB_MEM_MGR\" $debugger $exec_path $arglist [PID = $$]
echo "-------------------------------------------------------------------"
fi

# This must be the last thing we do before launching MATLAB,
# otherwise we may affect anything spawned from this script.
if [ "$memcheck_path" != "" ]; then
. "$memcheck_path"
fi

eval exec "$debugger \"$exec_path\" $arglist"
fi






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts